Django 全局变量是在所有用户之间共享还是在单个用户之间共享?



嘿,这是一个更普遍的问题。

第一部分只是确切地知道全局变量是如何工作的。如果多个用户同时访问服务器,是否将在所有用户之间共享全局变量?还是每个用户都有自己的该全局变量实例?

我知道会话以及这可能是解决我问题的最佳答案,但是,我目前正在使用 Django FormWizard,它似乎无法访问request所以我无法使用会话。我不完全确定如何访问request所以如果有人知道如何做到这一点,我将不胜感激。

谢谢!

取决于部署应用程序的方式。例如,默认情况下,Gunicorn 将使用自己的环境加载每个工作进程,但--preload它将加载应用程序,并且仅在预分叉工作线程之后加载。共享全局变量的第二种方式,但有一个限制:所有共享变量都将在写入时复制,因此,如果您尝试在工作进程中修改全局变量,则将复制该变量,并且您将修改实例的副本。

回答你的第二个问题。如果 Django 没有直接传递到函数中,你就无法从任何你想要的地方获取请求实例。请注意,修改全局变量通常不是线程安全的。

最新更新