Django CommandError:如果调试为False,则必须设置settings.ALLOWED\u主机
我正在使用Django 1.6.5的设置:Django CommandError:如果调试为False,则必须设置settings.ALLOWED\u主机,django,Django,我正在使用Django 1.6.5的设置: DEBUG = True 当我更改为DEBUG=False并运行manage.py runserver时,会出现以下错误: CommandError:如果调试为False,则必须设置设置。允许的\u主机 我在以下设置中得到相同的错误: ALLOWED_HOSTS = ['127.0.0.1', 'localhost'] 如何解决此问题?试试看 ALLOWED_HOSTS = ['*'] # SECURITY WARNING: don't run
DEBUG = True
当我更改为DEBUG=False
并运行manage.py runserver
时,会出现以下错误:
CommandError:如果调试为False,则必须设置设置。允许的\u主机
我在以下设置中得到相同的错误:
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
如何解决此问题?试试看
ALLOWED_HOSTS = ['*']
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']
如果没有防火墙或在公共LAN上,安全性会降低,但这是我使用的,而且有效
编辑:有趣的是,即使在DEBUG=True
时,我也一直需要将其添加到我的一些1.8项目中。很不确定为什么
编辑:这是由于我的评论中提到的Django安全更新。您的解决方案可能是添加原始IP和/或主机名:
ALLOWED_HOSTS = [
'localhost',
'127.0.0.1',
'111.222.333.444',
'mywebsite.com']
要满足的条件是主机头(或
X-Forwarded-host
如果启用了USE\u X\u Forwarded\u host
)应与ALLOWED\u HOSTS
中的一个值相匹配,确保它不会在settings.py的较低位置重新定义。默认设置包括:
允许的\u HOSTS=[]
来自文档:
如果DEBUG为False,则还需要正确设置允许的\u主机
背景否则将导致返回所有请求
作为“错误请求(400)”
从这里开始:
我用的是这样的东西:
ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'www.mysite.com']
只需注释掉这一行:ALLOWED_HOSTS=[…]使用以下命令:
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
如果您在
PyCharm
中工作,请检查Django服务器的环境变量
。您应该指定正确的模块。设置
文件尝试
ALLOWED_HOSTS = ['*']
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = ['*']
“*”的值将匹配任何内容;在这种情况下,您有责任提供自己对主机头的验证。这对我很有用:
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['localhost', '127.0.0.1']
我也经历了这个错误。在尝试了这里的所有答案后,我仍然无法找出问题所在,以下是我所做的:
将Cd放入项目目录中。e、 g cd项目总监
我迁移了。e、 g python manage.py迁移
我创建了一个超级用户。e、 g python manage.py createsuperuser
输入所需信息,如用户名、密码、电子邮件等
您应该会得到“超级用户创建成功”的响应
现在运行服务器。例如python manage.py runserver
单击显示的URL
浏览器上的URL应如下所示,127.0.0.1:8000/退出
现在将浏览器上的URL编辑为127.0.0.1:8000/admin
您应该会看到一个管理登录页面
使用您先前创建的超级用户信息登录
您应该登录到Django管理系统
现在点击页面顶部的“查看站点”
您应该会看到一个页面,其中显示“安装已成功运行…”Debug=True
瞧!您的服务器已启动并正在运行
我已经设置了ALLOW_HOSTS、INTERNAL_IPS和DEBUG=TRUE
但还是犯了这个错误。
我的问题是我创建了一个名为
是主应用程序中的“设置”。
并且该包名称干扰了“settings.py”文件。为了不浪费代码,我应该将代码正确地放在哪里?请执行grep ALLOWED\u HOSTS-ri
在项目的head文件夹中查找正确的文件。在这种情况下是settings.py,但是grepping总是一个好建议。我应该在哪个文件中写这个?@MonaJalal请看Harald的评论。根据[Django docs][1],允许的\u主机的行为已经被修改以解决DNS重新绑定攻击,这可能是必要的。[1] :错误消息导致您无法查找此信息。谢谢你的发帖。如果是评论,你怎么知道重定向到哪里呢?配置好后,旧的重新启动对我来说很有效…检查下面是否再次定义了DEBUG=True。这可能只是一个糟糕的复制粘贴。我来这里是因为我无意中取消了DEBUG=False