访问django mod_wsgi脚本中的请求标头

时间:2014-09-18 12:21:35

标签: python django mod-wsgi

我在apache上运行了一个django应用程序。我用mod_wsgi。我想在创建'应用程序'之前在wsgi.py脚本中设置一些env变量。但我想根据请求标头中的某些属性设置env变量。

我无法使用django中间件设置env变量,因为在加载某些python模块时需要使用env变量,这些模块似乎是在调用中间件的process_requestfunction之前发生的。

所以我的问题是 - 在'应用程序之前,如何/在何处根据请求标头初始化env变量?是在我的wsgi脚本中创建的?

这就是我在wsgi.py -

中创建应用程序的方式
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

导入django.core.handlers.wsgi是触发加载我的应用程序的python模块,需要在加载时定义env变量。

谢谢,

1 个答案:

答案 0 :(得分:1)

你不能也不应该。 WSGI进程在多个请求中是持久的,您不会每次都从新的初始化它。

如果您的中间件依赖于请求中的某些元素,则应该在那里明确检查它们,而不是依赖于环境变量。