Я отредактировал мой settings.py
файл с помощью условного блока, например:
import os # If needed.
if os.environ.get('DJANGO_DEBUG'):
print("Debug is enabled.")
DEBUG = True
# When not specified, ALLOW_HOSTS defaults to:
# ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']
else:
DEBUG = False
ALLOWED_HOSTS = ["*"]
Затем запустите сервер, передав переменную окружения DJANGO_DEBUG=1
. Вы можете назвать переменную как угодно, если вы согласны:
DJANGO_DEBUG=1 python -Wall manage.py runserver
Пропустить эту переменную окружения при вызове manage.py
, чтобы отключить отладку (потому что установка ее на любое значение, включая 0
все равно сделает ее верной коду Python.)
Обновление: Автор комментария заявил, что директива ALLOWED_HOSTS
игнорируется, когда DEBUG
равен True
. Это верно только в старых версиях Django. Текущее поведение должно учитывать ALLOWED_HOSTS
или значение по умолчанию для адресов локального хоста, если оно не указано, когда включен DEBUG
. Мой ответ обновлен, чтобы отразить это как незначительное исправление.
Источник из документации Django :
Когда DEBUG равен True, а ALLOWED_HOSTS пусто, хост
проверено на ['localhost', '127.0.0.1', '[:: 1]']
Кроме того, в нем говорится, что поведение вашего комментария устарело в нескольких основных строках:
В старых версиях ALLOWED_HOSTS не проверялось, если DEBUG = True.
Это также было изменено в Django 1.10.3, 1.9.11 и 1.8.16, чтобы предотвратить
Атака повторного связывания DNS.