【问题标题】:Global state in a WSGI hosted Flask applicationWSGI 托管的 Flask 应用程序中的全局状态
【发布时间】:2017-10-19 06:06:19
【问题描述】:

假设一个 Flask 应用程序允许通过多个步骤(类似向导;客户端)构建对象(服务器端)。 我想创建一个初始对象服务器端,并在给定客户端输入的情况下逐步构建它,在整个构建过程中保持对象“活动”。每个新对象/向导的创建都会关联一个唯一的 ID。

在 Apache 上使用 WSGI 为 Flask 应用程序提供服务,请求可以通过 Flask 应用程序的多个实例/多个线程。

如何让这个对象在服务器端保持活动状态,或者换句话说,如何保持某种全局状态? 我喜欢将对象保存在内存中,而不是将其序列化/反序列化到磁盘/从磁盘进行序列化/反序列化。也没有 cookie。

编辑:

我知道 Flask.g 对象,但由于这是基于每个请求的,所以这不是一个有效的解决方案。 也许可以使用某种缓存层,例如:

from werkzeug.contrib.cache import SimpleCache
cache = SimpleCache()

这是一个有效的解决方案吗?该层是否存在于多个应用实例中?

【问题讨论】:

    标签: python python-2.7 flask mod-wsgi werkzeug


    【解决方案1】:

    您正在寻找会话。

    您说您不想使用 cookie,但您的意思是您不想将数据存储为 cookie 还是完全避免使用 cookie?对于前一种情况,请查看服务器端会话,例如Flask-KVSession

    不是将数据存储在客户端上,而是仅将安全生成的 ID 存储在客户端上,而实际的会话数据驻留在服务器上。

    【讨论】:

      猜你喜欢
      • 2021-05-20
      • 2019-11-22
      • 2023-01-28
      • 1970-01-01
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-03-14
      相关资源
      最近更新 更多