我试图在我的flask应用程序中使用一个全局变量:
from flask import Flask, render_template, request, jsonify
app = Flask(__name__)
varGlobal = None
@app.route('/')
def home():
return render_template('home.html')
@app.route('/api/prepare', methods=['POST'])
def prepare():
if varGlobal is None:
varGlobal = "some_val"
return varGlobal
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8989, debug=True)
所以当我的页面加载并点击api/prepare
时,我得到:
UnboundLocalError: local variable 'varGlobal' referenced before assignment
我希望这个varGlobal
在我的应用程序运行期间一直保持。即使我重新加载页面。我该怎么做?在
我不会再提你回溯的原因了,这主要是因为你没有使用
global
关键字,所以全局变量不能像其他已经在注释/答案中阐明的那样从你的方法中正确绑定。在现在,我强烈建议您避免全局变量,特别是在多线程环境中,它们是邪恶的。当生成不同的线程(即:多个用户)时,您的代码将非常失败。在
相反,我建议您熟悉一些为这个非常具体的任务创建的flask实用程序,比如这个http://flask.pocoo.org/docs/0.12/api/#flask.Flask.app_ctx_globals_class。在
相关问题 更多 >
编程相关推荐