Я новичок в 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 без режима отладки?
ALLOWED_HOSTS
list должен содержать полностью зарегистрированные имена узлов, не. Оставьте порт и протокол. Если вы используете 127.0.0.1
, я бы добавил в список localhost
:
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']
Вы также можете использовать *
для соответствия любому хосту:
ALLOWED_HOSTS = ['*']
Указание документации:
Значения в этом списке могут быть полностью квалифицированными именами (например,
'www.example.com'
), и в этом случае они будут сопоставляться с запросамиHost
header точно (без учета регистра, не включая порт). Значение, начинающееся с периода, может использоваться в качестве подстановочного поддомена:'.example.com'
будет соответствоватьexample.com
,www.example.com
и любому другому субдоменуexample.com
. Значение'*'
будет соответствовать чему-либо; в этом случае вы несете ответственность за свою собственную проверку заголовкаHost
(возможно, в промежуточном программном обеспечении, если это промежуточное программное обеспечение должно быть указано первым вMIDDLEWARE_CLASSES
).
Смелый акцент мой.
Ответ на статус 400, полученный вами, обусловлен SuspiciousOperation
exception, возникающим, когда заголовок вашего хоста не соответствует никаким значениям в этом список.
Для меня я получил эту ошибку, не установив USE_X_FORWARDED_HOST
в true. Из документов:
Это должно быть разрешено только в том случае, если используется прокси-сервер, который устанавливает этот заголовок.
Мой хостинг написал в своей документации, что этот параметр должен использоваться, и я получаю эту ошибку 400, если я ее забуду.
У меня была та же проблема, и я исправил ее, набрав ALLOWED_HOSTS = ['*'], и для решения проблемы со статическими изображениями вы должны изменить виртуальные пути в конфигурации окружения следующим образом:
Виртуальный путь strong >
/Статический/ /Opt/питон/ток/приложение/yourpj/статический/
/media/ /Опт/питон/ток/приложение/Nuevo/СМИ/
Надеюсь, это поможет вам.
PD: извините за мой плохой английский.
С DEBUG = False
в вашем файле настроек вам также потребуется список ALLOWED_HOST.
Попробуйте включить ALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
В противном случае вы можете получить ошибку Bad Request (400) из django.
Перейдите к настройкам и найдите файл base.py Установите разрешенные хосты для ALLOWED_HOSTS = ['*']
ALLOWED_HOSTS