- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种安全的方法来触发 django 生产服务器上的 INTERNAL_IPS 请求的 DEBUG,而不需要更改 settings.py 文件。主要是为了让工具栏可供一些设计人员检查实时数据/媒体上的问题,但不依赖他们在完成后重置设置。
与此方法类似。然而这仅适合部署。
过去在基于 php 的系统上,我有 mydomain.com 和演示 mydomaincom.myprodserver.com,其中 prodserver 域可以自动运行基于 $_SERVER['HOST_NAME'] 的调试代码,但 django 缺乏简单的 super 全局。例如,在博客示例中,主机名是/etc/hostname 而不是虚拟主机。
任何想法表示赞赏。
编辑:
通过将/path/to/django_in_debug/添加到 mydomaincom.myprodserver.com vhost 条目的 sys.path 中,我有一种解决方案(但理想情况下我更喜欢更便携的解决方案)。然后在settings.py文件中
try:
from django_in_debug.settings import *
except:
DEBUG = False
最佳答案
您要求做的事情比看起来要复杂一些。您想要显示请求级别发生的某些 INTERNAL_IPS 的调试信息。但是,您正在谈论位于站点级别的settings.py。
要实现这一目标,您必须根据每个请求重新评估 settings.py,正如您所知,这可能是一个非常糟糕的方向。根据 Django 自己的文档,在加载后修改站点的设置是不允许的(公平地说,人们可以这样做,但对于 Django 的官方立场来说,这毫无值(value))。
这里有一个想法给你:
您有 2 个 WSGI 文件。第一个 WSGI 文件指向您的主 settings.py,apache 将流量从 www.yourdomain.com 定向到它。第二个 WSGI 文件指向 debug_settings.py,apache 将流量从 debug.yourdomain.com 重定向到它。 debug_settingsg.py 看起来像这样:
from settings import *
DEBUG = True
TEMPLATE_DEBUG = DEBUG
从这里您可以编写一个简单的中间件组件来捕获传入的请求。将请求 IP 与 settings.INTERNAL_IPS 进行比较,如果发现匹配,则请求将重定向到 debug.yourdomain.com。
这允许您保留网站的 1 个副本,但可以根据请求级别值更改网站级别设置。
关于django - 如何在生产服务器上非侵入式地触发 django DEBUG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1943583/
我是一名优秀的程序员,十分优秀!