Flask中每个请求的值相同

时间:2016-01-29 09:41:44

标签: python flask

需要在我的视图文件中为每个请求获取相同的值。我使用before_request函数并将它们添加到全局字典中,而不是在每个请求中获取它们:

options = {}
@app.before_request
def before_request():
    options['ip'] = request.remote_addr
    options['useragent'] = request.user_agent.string

这是一个好的解决方案吗?你能推荐什么?

2 个答案:

答案 0 :(得分:1)

不,这是一个非常糟糕的主意。虽然请求是线程本地的,所以你可以在任何地方访问它,你的options字典不是;它不是线程安全的,因此将在所有请求中共享。

答案 1 :(得分:1)

对此的正确答案是使用Flask的g对象。你可以在这里阅读:http://flask.pocoo.org/docs/0.10/api/#flask.g