我在我的程序txsite中使用Django 1.6.5,设置为:
DEBUG = True
我将DEBUG设置为False,但是当我runserver
时,我收到以下错误:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False
我尝试设置ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
,但我收到同样的错误。
任何人都知道如何解决这个问题?
答案 0 :(得分:120)
尝试
ALLOWED_HOSTS = ['*']
如果您没有防火墙或在公共局域网上安全性较低,但这是我使用的并且有效。
编辑:有趣的是,即使DEBUG = True
,我也需要将其添加到我的1.8个项目中。非常不确定为什么。
编辑:这是由于我的评论中提到的Django安全更新。
答案 1 :(得分:42)
您的解决方案可能是添加原始IP和/或主机名:
ALLOWED_HOSTS = ['localhost', '127.0.0.1', '111.222.333.444', 'mywebsite.com']
要满足的条件是主机标头(或X-Forwarded-Host
如果USE_X_FORWARDED_HOST
已启用)应与ALLOWED_HOSTS
中的某个值匹配。
答案 2 :(得分:21)
确保未在settings.py中再次重新定义它。默认设置为:
ALLOWED_HOSTS = []
答案 3 :(得分:12)
来自文档: https://docs.djangoproject.com/en/1.10/ref/settings/
如果DEBUG为False,则还需要正确设置ALLOWED_HOSTS 设置。如果不这样做,将导致返回所有请求 作为“错误请求(400)”。
从这里开始: https://docs.djangoproject.com/en/1.10/ref/settings/#std:setting-ALLOWED_HOSTS
我正在使用这样的东西:
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'www.mysite.com']
答案 4 :(得分:3)
这样做:
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
它会起作用。
答案 5 :(得分:1)
如果您在PyCharm
工作,请为您的Environmental variables
检查Django server
。您应该指定正确的module.settings
文件
答案 6 :(得分:0)
尝试
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']
'*'值将匹配任何内容;在这种情况下,您有责任提供自己的Host标头验证。
答案 7 :(得分:0)
您可以尝试一下,这就是我为我工作的方式
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
答案 8 :(得分:0)
我也遇到了此cmderror。在尝试了所有答案之后,我仍然无法找出问题所在,这是我所做的:
答案 9 :(得分:0)
我已经设置了 ALLOW_HOSTS、INTERNAL_IPS 和 DEBUG=TRUE
但仍然出现此错误。 我的问题是我创建了一个名为 python 的包 是主应用程序中的“设置”。 并且该包名称干扰了“settings.py”文件。
答案 10 :(得分:-6)
只需简单地注释掉这一行:ALLOWED_HOSTS = [...]