-1
我有一个渲染页面,我一个简单的瓶功能:是否可以在render_template之前将数据传递给Flask?
@app.route('/')
def main_page():
return render_template("index.html")
我的问题是,是否有可能从它位于我index.html
文件传回瓶的main_page
功能的JavaScript函数传递变量在它完全呈现之前?
这里是我的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模板的数据。如果这是不可能的,是否有任何技巧或替代技术可以产生几乎相同的结果?
我认为你将不得不提交您的状态变化的POST请求到端点并把它传递给模板 – Adam
@Adam这很有趣,我曾与文本框的做到了这一点,当你有渲染页面,那么你获取文本字段的内容并执行一些操作。但在页面加载时无法使其工作。恐怕这是不可能的。 – rihe
我其实误解了这个问题。我没有意识到它是在渲染之前,因此在它服务之前。我想我很好奇,为什么你不处理路由中的变量,然后将它传递到模板上下文 – Adam