flask.g和flask.request是线程本地存储吗



我的理解是flask.g对象或flask.request是线程本地存储。然而,当我执行以下代码时,它显示flak.g(和flak.request(的id在每个线程中总是相同的值:

from flask import Flask, request, g
app = Flask(__name__)
@app.route('/')
def hello():
print("g id: %d" % id(g))
print("request id: %d" % id(request))
return "Hello world"
if __name__ == "__main__":
app.run()

结果(使用多个浏览器访问三次(:

g id: 140219657264584
request id: 140219657262640
g id: 140219657264584
request id: 140219657262640
g id: 140219657264584
request id: 140219657262640

我的理解是错误的?

我认为g和request是变量对象。所以本我总是相等的。

当设置数据时

g = {}
g[current thread id] = your data

何时获取数据

g[current thread id]

因此flask.g和flask.request是线程本地存储

相关内容

最新更新