Django 不记得上下文
Django doesn't remember context
我是 Django 的新手,我正在尝试在新服务器上设置现有项目。
Django 启动了,但它的行为很奇怪。我有以下代码:
someVar = None
def first(request):
global someVar
someVar = 'modified'
def second(request):
return HttpResponse(someVar) # prints 'None'
我将此方法映射到 URL。当我调用 'first' 方法然后调用 'second' 时,预期输出是 'modified',但实际上它是 'None'
似乎 Apache 在每次请求时都会启动应用程序,就像它是某个 cgi 脚本一样。知道为什么会这样吗?
我将 Apache2.2 与 mod_wsgi 和 Django 1.5.9 一起使用。
Django 项目在 Apache 的文档根目录之外。这是 Apache 主机配置文件:
WSGIScriptAlias / /path/mysite/mysite/wsgi.py
WSGIPythonPath /path/mysite
<Directory /path/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
模块级变量仅在使用同一进程的请求之间共享。 Apache 几乎肯定会启动多个进程来为您的网站提供服务。如果您的后续请求恰好进入为初始请求提供服务的同一进程,您将看到更改;否则你不会。
如果你真的需要在请求之间共享数据,无论哪个进程为它们服务,你应该使用一个更持久的地方,比如会话或数据库。
我是 Django 的新手,我正在尝试在新服务器上设置现有项目。
Django 启动了,但它的行为很奇怪。我有以下代码:
someVar = None
def first(request):
global someVar
someVar = 'modified'
def second(request):
return HttpResponse(someVar) # prints 'None'
我将此方法映射到 URL。当我调用 'first' 方法然后调用 'second' 时,预期输出是 'modified',但实际上它是 'None'
似乎 Apache 在每次请求时都会启动应用程序,就像它是某个 cgi 脚本一样。知道为什么会这样吗?
我将 Apache2.2 与 mod_wsgi 和 Django 1.5.9 一起使用。 Django 项目在 Apache 的文档根目录之外。这是 Apache 主机配置文件:
WSGIScriptAlias / /path/mysite/mysite/wsgi.py
WSGIPythonPath /path/mysite
<Directory /path/mysite/mysite>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
模块级变量仅在使用同一进程的请求之间共享。 Apache 几乎肯定会启动多个进程来为您的网站提供服务。如果您的后续请求恰好进入为初始请求提供服务的同一进程,您将看到更改;否则你不会。
如果你真的需要在请求之间共享数据,无论哪个进程为它们服务,你应该使用一个更持久的地方,比如会话或数据库。