需要在我的视图文件中为每个请求获取相同的值。我使用before_request
函数并将它们添加到全局字典中,而不是在每个请求中获取它们:
options = {}
@app.before_request
def before_request():
options['ip'] = request.remote_addr
options['useragent'] = request.user_agent.string
这是一个好的解决方案吗?你能推荐什么?
答案 0 :(得分:1)
不,这是一个非常糟糕的主意。虽然请求是线程本地的,所以你可以在任何地方访问它,你的options
字典不是;它不是线程安全的,因此将在所有请求中共享。
答案 1 :(得分:1)
对此的正确答案是使用Flask的g
对象。你可以在这里阅读:http://flask.pocoo.org/docs/0.10/api/#flask.g