一尘不染

当DEBUG = False时,Django给出错误请求(400)

django

我是django-1.6的新手。当我使用运行django服务器时DEBUG = True,它运行良好。但是,当我改变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?


阅读 668

收藏
2020-04-01

共1个答案

一尘不染

该ALLOWED_HOSTS列表应包含标准主机名,而不是 URL。省略端口和协议。如果你使用127.0.0.1,我也将添加localhost到列表中:

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

你还可以*用来匹配任何主机:

ALLOWED_HOSTS = ['*']

引用文档:

此列表中的值可以是完全限定的名称(例如'www.example.com'),在这种情况下,它们将与请求的Host标头完全匹配(不区分大小写,不包括port)。用了一段开头的值可以用作一个子域通配符:'.example.com'将匹配example.com,www.example.com以及任何其他子域example.com。值'*'将匹配任何内容;在这种情况下,你有责任提供自己的Host标头验证(可能在中间件中;如果是,则必须在中列出该中间件MIDDLEWARE_CLASSES)。

2020-04-01