13

Flask中是否有应用程序范围的python变量之类的东西?我想在用户之间实现一些原始消息传递,以及共享数据缓存。当然,可以通过数据库来实现这一点,但我想知道也许有一种无 db 并且可能更快的方法。理想情况下,如果共享变量是一个实时的 python 对象,但我的需求也会满足字符串和整数。

编辑:补充(非工作)示例

from flask import g

@app.route('/store/<name>')
def view_hello(name=None):
    g.name = name
    return "Storing " + g.name

@app.route("/retrieve")
def view_listen():
    n = g.name
    return "Retrieved: " + n

在尝试检索 g.name 时,这会触发错误:AttributeError: '_RequestGlobals' object has no attribute 'name'

4

2 回答 2

4

我不确定这是否是一个好主意,但我一直在使用它在请求之间轻松共享数据:

class MyServer(Flask):

    def __init__(self, *args, **kwargs):
            super(MyServer, self).__init__(*args, **kwargs)

            #instanciate your variables here
            self.messages = []

app = MyServer(__name__)

@app.route("/")
def foo():
    app.messages.append("message")
于 2014-11-16T18:59:43.483 回答
-8

因为烧瓶 0.10flask.g将是要走的路。

在早期版本中,flask.g 存储在请求上下文中,并在请求之间被清除。如果您使用的是旧版本,则应将应用级别的内容存储在flask.current_app

于 2014-01-01T15:51:34.410 回答