我需要一种方法来区分 Django 中的开发服务器(例如 by 运行./manage.py runserver 0.0.0.0:8000
)与在 Apache 上运行的开发服务器。对于 Apache,我使用 WSGI 守护程序模式,但我想找到一些更可靠的解决方案来检测 Django 开发服务器上的执行情况。
我目前使用的类似于:
wsgi_wrapper = request.META.get('wsgi.file_wrapper')
wsgi_wrapper_path = wsgi_wrapper.__module__ if wsgi_wrapper else None
这似乎提供了wsgi_wrapper_path
存储:
- "
wsgiref.util
" 在 Django 的内置开发服务器上运行时的字符串, None
当以守护程序模式在 Apache / WSGI 上运行时,
这里的问题是我不确定我是否可以依赖该检查(例如,如果生产/登台/开发服务器或我的本地主机配置发生更改)。我找不到任何有关此的文档。
我需要该检查主要是因为 Django 的开发服务器存在一个问题:即使 HTTP 请求本身没有设置内容类型(例如,它是一个请求) ,它也会将请求的CONTENT_TYPE
( request.META['CONTENT_TYPE']
) 设置为“ ”。text/plain
GET
任何关于 Django 的开发服务器检测(或解决请求内容类型不正确的问题)的想法都将不胜感激。谢谢。
附言。我基本上是在问这个问题:如何判断我的 Django 应用程序是否在开发服务器上运行?对于 Django 1.4,尝试确定在配置更改时足够可靠的解决方案。