我有一个简单的Flask功能,可以为我呈现一个页面:
@app.route('/')
def main_page():
return render_template("index.html")
我的问题是,可以将位于我的index.html
文件中的Javascript函数中的变量传回Flask的main_page
函数,然后才能获得该函数完全渲染?
这是我的html文件:
<head>
<title>My Title</title>
</head>
<body>
// HTML content
<script>
firebase.auth().onAuthStateChanged(firebaseUser => {
if (firebaseUser) {
var myVar = "content"
}
});
</script>
</body>
我正在考虑这样的事情:
@app.route('/')
def main_page():
# 1. get the myVar variable from the JS code located in the same index.html page
# 2. check the variable and pass a variable to the Jinja template based on myVar's content
if myVar is something:
return render_template("index.html", text = "something A")
else:
return render_template("index.html", text = "something B")
所以我不想从文本字段中获取内容,我将通过JS代码接收它。我想加载'/'
路由一次,并根据myVar
变量的内容决定传入Jinja模板的数据。如果不可能,是否有任何技巧或替代技术可以产生几乎相同的结果?
答案 0 :(得分:1)
鉴于您正在访问第三方API而未将应用程序中的任何数据保存到数据库,因此无需向烧瓶应用程序发出HTTP请求。可以在客户端处理状态,只需更新HTML w / JQuery。
// in callback
$('target').val('newval');