CommandError:如果DEBUG为False,则必须设置settings.ALLOWED_HOSTS

时间:2014-07-21 03:05:20

标签: django

我在我的程序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'],但我收到同样的错误。

任何人都知道如何解决这个问题?

11 个答案:

答案 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。在尝试了所有答案之后,我仍然无法找出问题所在,这是我所做的:

  1. 将CD放入项目目录。例如cd project-dir
  2. 我迁移了。例如python manage.py migration
  3. 我创建了一个超级用户。例如python manage.py createsuperuser
  4. 输入所需的信息,例如用户名,密码,电子邮件等
  5. 您应该获得“成功创建超级用户”的响应
  6. 现在运行服务器。例如python manage.py runserver
  7. 点击显示的网址
  8. 浏览器上的URL应该如下所示:127.0.0.1:8000/Quit
  9. 现在将浏览器上的URL编辑为127.0.0.1:8000/admin
  10. 您应该会看到一个管理登录页面
  11. 使用您之前创建的超级用户信息登录
  12. 您应该登录Django管理部门
  13. 现在单击页面顶部的“查看网站”
  14. 您应该看到一个页面,显示“安装成功完成..... Debug = True”
  15. Voila!您的服务器已启动并正在运行

答案 9 :(得分:0)

我已经设置了 ALLOW_HOSTS、INTERNAL_IPS 和 DEBUG=TRUE

但仍然出现此错误。 我的问题是我创建了一个名为 python 的包 是主应用程序中的“设置”。 并且该包名称干扰了“settings.py”文件。

答案 10 :(得分:-6)

只需简单地注释掉这一行:ALLOWED_HOSTS = [...]