当 uwsgi 重新加载到烧瓶中时保留全局数据

Keep global data when uwsgi reload in flask

情况如下:

我正在使用 nginx, uwsgi, python3.4, 用于 Web 服务的 flask

在登录过程中,我想设置一个全局变量来保存 {'token':'user_id'} 字典以快速验证用户令牌。

我试过两种方法。

  1. 第一个是使用 flask.g。但是,问题是 flask.g 全局变量不能在请求之间共享数据。
  2. 第二个是使用应用程序的配置字典,但是 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 - 它在各种后端存储会话数据。