当 uwsgi 重新加载到烧瓶中时保留全局数据
Keep global data when uwsgi reload in flask
情况如下:
我正在使用 nginx, uwsgi, python3.4, 用于 Web 服务的 flask。
在登录过程中,我想设置一个全局变量来保存 {'token':'user_id'}
字典以快速验证用户令牌。
我试过两种方法。
- 第一个是使用
flask.g
。但是,问题是 flask.g
全局变量不能在请求之间共享数据。
- 第二个是使用应用程序的配置字典,但是
app.config
字典会在 uwsgi
重新加载时发生变化。
有人能告诉我如何实现目标吗?
您可以使用完全符合您要求的 Flask session
对象:
A session basically makes it possible to remember information from one
request to another.
此外,session
基本上是一个 python 字典,您可以在其中存储请求之间的信息。
请参阅 here 一个关于使用 session
及其所需的 secret_key
的小示例。
如果安全是您最关心的问题,您应该使用 isdangerous 模块,它比默认的 werkzeug 会话 更安全。
更新
另一种可能性是使用 server-side sessions to store the session data in the database. There is even an extension - Flask-KVSession - 它在各种后端存储会话数据。
情况如下:
我正在使用 nginx, uwsgi, python3.4, 用于 Web 服务的 flask。
在登录过程中,我想设置一个全局变量来保存 {'token':'user_id'}
字典以快速验证用户令牌。
我试过两种方法。
- 第一个是使用
flask.g
。但是,问题是flask.g
全局变量不能在请求之间共享数据。 - 第二个是使用应用程序的配置字典,但是
app.config
字典会在uwsgi
重新加载时发生变化。
有人能告诉我如何实现目标吗?
您可以使用完全符合您要求的 Flask session
对象:
A session basically makes it possible to remember information from one request to another.
此外,session
基本上是一个 python 字典,您可以在其中存储请求之间的信息。
请参阅 here 一个关于使用 session
及其所需的 secret_key
的小示例。
如果安全是您最关心的问题,您应该使用 isdangerous 模块,它比默认的 werkzeug 会话 更安全。
更新
另一种可能性是使用 server-side sessions to store the session data in the database. There is even an extension - Flask-KVSession - 它在各种后端存储会话数据。