Django CommandError:如果调试为False,则必须设置settings.ALLOWED\u主机

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

我正在使用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 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