python - 在 Django 中对同一 View 的请求之间共享数据

标签 python django python-2.7

我在django中有一个简单的 View

class SimpleView(View):   
    def get(self, *args, **kwargs):   
        c = C()
        c.m()

class C:
    def m(self):
        x = # get from an external server if not set

我想在对 SimpleView 的不同请求中共享 x

例如,让我们考虑以下场景:

  1. 某人#1 向 SimpleView 请求 getx 未设置,因此将从外部服务器获取。

  2. 某人#2 向 SimpleView 请求 getx 已设置,因此不会从外部服务器获取。

我知道那段代码无法做到这一点。我知道什么是全局变量。但是,我不知道如何在不同请求之间共享数据。我不想使用数据库来存储它(因为优化)- 值 x 不必是持久的。

请注意,如果共享某些内容的方法是线程安全的,那就太好了(这不是必需的,我处理它)。

怎么做?

(django 1.6)

最佳答案

由于您不需要永久存储数据,因此您应该使用 session store为此。

通常 session 引擎被配置为使用数据库;可以使用其他后端,但很少有充分的理由这样做。

(另请注意,您应该升级您的 Django 版本;1.6 是旧版本,不受支持,并且可能不安全。)

关于python - 在 Django 中对同一 View 的请求之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45802376/

相关文章:

python - 从 pandas.DataFrame 列配置 Bokeh 的工具提示

python - PANDAS:执行to_excel成功,但没有输出文件

python - numpy 取很多样本而不按行替换

python - 将可变长度元组列表转换为字典

python - 如何在没有 yaml.YAMLObject 的情况下执行 Python 对象的 yaml.safe_dump() 和 .safe_load()?

Python 的 __debug__ 特殊变量不适用于导入的模块

python - 有效的请求 URL 在 web2py 中是否会有 '.html' 扩展名?

python - 跨 LiveServerTestCase 测试方法保留数据?

javascript - 在 Django 模板中安全地使用 JSON 和 JSON 中的 html

python - 无法登录我的用户,他们似乎没有正确注册