我在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变量。
谢谢,
答案 0 :(得分:1)
你不能也不应该。 WSGI进程在多个请求中是持久的,您不会每次都从新的初始化它。
如果您的中间件依赖于请求中的某些元素,则应该在那里明确检查它们,而不是依赖于环境变量。