我是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吗?


当前回答

对我来说,我得到这个错误没有设置USE_X_FORWARDED_HOST为true。从文档中可以看出:

只有当设置此报头的代理正在使用时,才应该启用该选项。

我的主机服务在他们的文档中明确地写了这个设置必须使用,如果我忘记它,我就会得到这个400错误。

其他回答

我必须先停止apache服务器。

(f.e. sudo systemctl stop httpd. txt)Service / sudo systemctl disable httpd.service)。

这解决了我的问题,除了编辑'settings.py'文件

to ALLOWED_HOSTS = ['se.rv.er.]ip”、“www.example.com”)

在项目的settings.py中,检查第28行,其中是允许主机

settings.py


ALLOWED_HOSTS = ['IP', 'servidor', ]

你必须把IP和你使用的服务器,本地或web级别 settings.py

ALLOWED_HOSTS = ['127.0.0.1', 'localhost', 'www.ejemplo.com']

or

ALLOWED_HOSTS = ['*']

对我来说,我得到这个错误没有设置USE_X_FORWARDED_HOST为true。从文档中可以看出:

只有当设置此报头的代理正在使用时,才应该启用该选项。

我的主机服务在他们的文档中明确地写了这个设置必须使用,如果我忘记它,我就会得到这个400错误。

在你的设置文件中使用DEBUG = False,你还需要设置ALLOWED_HOST列表。 尝试包含ALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']

否则你可能会收到来自django的Bad Request(400)错误。

我也有同样的问题,但没有一个答案能解决我的问题。为了解决这种情况,最好通过在settings.py中临时添加以下配置来启用日志记录。

LOGGING = {
   'version': 1,
   'disable_existing_loggers': False,
   'handlers': {
      'file': {
         'level': 'DEBUG',
         'class': 'logging.FileHandler',
         'filename': '/tmp/debug.log',
      },
   },
   'loggers': {
      'django': {
         'handlers': ['file'],
         'level': 'DEBUG',
         'propagate': True,
      },
   },
}

当您发现问题时,处理起来比盲目调试要容易得多。

我的问题是:

无效的HTTP_HOST头:'pt_web:8000'。根据RFC 1034/1035,提供的域名无效。

我通过添加proxy_set_header主机$ Host来解决它;在settings.py中启用USE_X_FORWARDED_PORT = True的端口转发(这是因为在我的情况下,我在Nginx端口8080上监听请求,并在端口8000上传递给guni)。