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

时间:2018-06-26 22:20:20

标签: django forms global-variables django-formwizard

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

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

我知道会话,这可能是解决我的问题的最佳答案,但是,我目前正在使用Django FormWizard,它似乎无法访问request,因此我无法使用会议。我不确定如何访问request,因此,如果有人知道该怎么做,我将非常感谢您的帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

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

回答第二个问题。如果未直接传递到函数中,则无法从Django中的任何位置获取请求实例。请注意,修改全局变量通常不是线程安全的。