Я новичок в Джанго-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
Ответы:
ALLOWED_HOSTS
Список должен содержать полные имена хостов , а не URL. Не указывайте порт и протокол. Если вы используете127.0.0.1
, я бы добавилlocalhost
в список тоже:Вы также можете использовать
*
для сопоставления с любым хостом:Цитирование документации:
Жирный акцент мой .
Ответ статуса 400 вы получаете из-за
SuspiciousOperation
исключения , возникающего, когда заголовок вашего хоста не соответствует никаким значениям в этом списке.источник
False
. Возможно, вы могли бы опубликовать новый вопрос?./manage.py collectstatic
подойдет.Для меня, я получил эту ошибку, не устанавливая
USE_X_FORWARDED_HOST
значение true. Из документов:Мой хостинг явно написал в их документации, что этот параметр должен использоваться, и я получаю эту ошибку 400, если я ее забуду.
источник
У меня была та же проблема, и я исправил ее, установив
ALLOWED_HOSTS = ['*']
и для решения проблемы со статическими образами вы должны изменить виртуальные пути в конфигурации среды следующим образом:Каталог виртуальных путей
/ статический / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /
Я надеюсь, что это поможет вам.
PD: извините за мой плохой английский.
источник
У меня была такая же проблема, и ни один из ответов не решил мою проблему, для разрешения ситуации, подобной этой, лучше включить ведение журнала, добавив следующую конфигурацию во
settings.py
временнуюи попытаться
tail -f /tmp/debug.log
. и когда вы видите свою проблему, вы можете справиться с ней намного проще, чем слепая отладка.Моя проблема была на
Неверный заголовок HTTP_HOST: «pt_web: 8000». Указанное доменное имя недействительно в соответствии с RFC 1034/1035.
и разрешите его, добавив
proxy_set_header Host $host;
в конфигурационный файл Nginx и включив переадресацию портовUSE_X_FORWARDED_PORT = True
вsettings.py
(это потому, что в моем случае я прослушал запрос в Nginx на порту8080
и передал егоguni
на порт8000
источник
Для меня, как у меня уже есть xampp на 127.0.0.1 и django на 127.0.1.1, и я продолжал пытаться добавить хосты
и я получил ту же ошибку или (400) неверный запрос
поэтому я меняю URL на 127.0.1.1:( используемый порт) / project и вуаля!
Вы должны проверить, каков ваш виртуальный сетевой адрес, для меня, так как я использую битнами django stack 2.2.3-1 в Linux, я могу проверить, какой порт использует django. если у вас есть ошибка (400 неправильных запросов), то я думаю, Django в другой виртуальной сети .. удачи
источник
Имея
DEBUG = False
в своем файле настроек, вам также нужно настроить список ALLOWED_HOST. Попробуйте в том числеALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
В противном случае вы можете получить ошибку Bad Request (400) от django.
источник
Попробуйте запустить свой сервер с параметром --insecure следующим образом:
python manage.py runserver --insecure
источник
Сначала мне пришлось остановить сервер apache.
(fe
sudo systemctl stop httpd.service
/sudo systemctl disable httpd.service
).Это решило мою проблему, кроме редактирования
settings.py
файла ' 'в
ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']
источник
Перейдите в настройки и найдите файл base.py. Установите для разрешенных хостов значение ALLOWED_HOSTS = ['*'].
источник