繁体   English   中英

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

[英]flask.g and flask.request are thread local storage?

我的理解是flask.g对象或flask.request是线程本地存储。 但是,当我执行以下代码时,它显示flask.g(和flask.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()

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

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

我的理解错了吗?

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

用g设定数据时

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

在何时获取数据

g[current thread id]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM