在flask应用程序中保留全局状态

13 浏览
0 Comments

在flask应用程序中保留全局状态

我正在尝试在我的flask应用程序中保存一个缓存字典。

据我了解,特别是应用上下文,尤其是flask.g对象应该用于此。

设置:

import flask as f
app = f.Flask(__name__)

现在如果我这样做:

with app.app_context():
    f.g.foo = "bar"
    print f.g.foo

它会打印出bar

继续如下:

with app.app_context():
    print f.g.foo
AttributeError: '_AppCtxGlobals' object has no attribute 'foo'

我不明白这是为什么,文档一点也没有帮助。如果我正确地阅读了它们,状态应该已经被保留。

我另外想到的一个想法是简单地使用模块范围的变量:

cache = {}
def some_function():
    cache['foo'] = "bar"

但似乎每个请求都会重置它们。

如何正确实现这个?

0