我在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 向
SimpleView
请求get
。x
未设置,因此将从外部服务器获取。某人#2 向
SimpleView
请求get
。x
已设置,因此不会从外部服务器获取。
我知道那段代码无法做到这一点。我知道什么是全局变量。但是,我不知道如何在不同请求之间共享数据。我不想使用数据库来存储它(因为优化)- 值 x
不必是持久的。
请注意,如果共享某些内容的方法是线程安全的,那就太好了(这不是必需的,我处理它)。
怎么做?
(django 1.6)
最佳答案
由于您不需要永久存储数据,因此您应该使用 session store为此。
通常 session 引擎被配置为使用数据库;可以使用其他后端,但很少有充分的理由这样做。
(另请注意,您应该升级您的 Django 版本;1.6 是旧版本,不受支持,并且可能不安全。)
关于python - 在 Django 中对同一 View 的请求之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45802376/