从WSGI脚本获取URL

时间:2015-08-13 03:00:42

标签: python django wsgi

所以我想根据用户的URL(或至少用户的域)从WSGI文件中调用不同的Python代码实例。我们正在运行Apache 2.x + Python + Django堆栈。

在WSGI脚本(herehere)中可以访问的os.environ字典中看起来应该有类似“SERVER_NAME”或“HTTP_HOST”的内容。但是这个密钥丢失了,这就是os.environ.__dict__在一切正常工作时的样子:

{'data': {'LANG': 'C', 'APACHE_LOCK_DIR': 'xxx', 'TZ': 'US/Pacific', 'DJANGO_SETTINGS_MODULE': 'xxx', 'APACHE_RUN_USER': 'xxx', 'PWD': 'xxx', 'APACHE_PID_FILE': 'xxx', 'CELERY_LOADER': 'django', 'APACHE_RUN_DIR': 'xxx', 'APACHE_LOG_DIR': 'xxx', 'APACHE_RUN_GROUP': 'xxx', 'HOME': 'xxx', 'PATH': 'xxx'}}

域/ URL是一个非常基本的信息,我很惊讶我没有找到它。

更新:我已经采用了不同的方法(使用Apache Config而不是WSGI脚本)。这似乎解决了缺少WSGI环境变量的问题。感谢您的所有回复!

1 个答案:

答案 0 :(得分:3)

您将显示当前系统环境变量的os.environ dict与作为参数传递给wsgi应用程序的environ混淆。路径在后者。

但是,由于您使用的是Django,因此该信息全部通过request对象提供。