我正在学习Flask,并有一个关于在路由上下文中使用变量的问题。例如,my app.py:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/index")
def index():
a=3
b=4
c=a+b
return render_template('index.html',c=c)
@app.route("/dif")
def dif():
d=c+a
return render_template('dif.html',d=d)
if __name__ == "__main__":
app.run()
在route/dif下,变量d是通过取已计算的c和a的值来计算的。如何在页面之间共享变量c和a,从而计算变量d并将其呈现为dif.html?
谢谢你
如果不想使用Sessions跨路由存储数据的一种方法是(请参阅下面的更新):注意:在访问
/dif
之前需要访问/index
。更新
根据davisim的评论,上面的代码不适合生产,因为它不是线程安全的。我用
processes=10
测试了代码,在/dif
中得到了以下错误:该错误表明
data.a
和data.c
的值在processes=10
时仍保持None
。因此,它证明了我们不应该在web应用程序中使用全局变量。
我们可以使用Sessions或数据库,而不是全局变量。
在这个简单的场景中,我们可以使用会话来实现期望的结果。 使用会话更新代码:
输出:
您可以在flask中使用变量,方法是在URL中写入这样从HTML传递的变量。 我是说
您的html将如下所示: 形式:
作为参考:
相关问题 更多 >
编程相关推荐