我是django-1.6的新手 . 当我用 DEBUG = True
运行django服务器时,它运行得很好 . 但是当我在设置文件中将 DEBUG
更改为 False
时,服务器停止并在命令提示符处出现以下错误:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
我将 ALLOWED_HOSTS
更改为 ["http://127.0.0.1:8000",]
后,在浏览器中出现错误:
Bad Request (400)
没有调试模式可以运行Django吗?
6 回答
我有同样的问题,我通过设置
ALLOWED_HOSTS = ['*']
修复它,并解决静态图像的问题,你必须改变环境配置中的虚拟路径,如下所示:Virtual Path Directory
/ static / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /
我希望它对你有所帮助 .
PD:抱歉我的英语不好 .
我有同样的问题,没有一个答案解决了我的问题,为了解决这种情况,最好通过将以下配置添加到
settings.py
temporary来启用日志记录并尝试
tail -f /tmp/debug.log
. 当你看到你的问题时,你可以比盲目的调试更容易处理它 .我的问题是
Invalid HTTP_HOST header: 'pt_web:8000'. The domain name provided is not valid according to RFC 1034/1035.
并通过将
proxy_set_header Host $host;
添加到Nginx配置文件并通过settings.py
中的USE_X_FORWARDED_PORT = True
启用端口转发来解决它('s because in my case I' ve在端口8080
上的Nginx中侦听请求并将其传递到端口8000
上的guni
导航到设置并找到base.py文件将允许的主机设置为ALLOWED_HOSTS = ['*']
ALLOWED_HOSTS list应包含完全限定的主机名 not urls . 省略端口和协议 . 如果您使用
127.0.0.1
,我也会将localhost
添加到列表中:您还可以使用
*
来匹配任何主机:引用文档:
大胆强调我的 .
您获得的状态400响应是由于当主机标头与该列表中的任何值不匹配时引发SuspiciousOperation exception .
对我来说,我没有将USE_X_FORWARDED_HOST设置为true而得到此错误 . 来自文档:
我的托管服务wrote在他们的文档中明确表示必须使用此设置,如果我忘记了,我会收到400错误 .
使用
DEBUG = False
在您的设置文件中,您还需要设置ALLOWED_HOST列表 . 试试包括ALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
否则,您可能会收到来自django的错误请求(400)错误 .