Jestem nowy w django-1.6. Kiedy uruchamiam serwer django DEBUG = True
, działa idealnie. Ale kiedy zmieniam DEBUG
na False
w pliku ustawień, serwer zatrzymał się i wyświetla następujący błąd w wierszu polecenia:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
Po zmianie ALLOWED_HOSTS
na ["http://127.0.0.1:8000",]
w przeglądarce pojawia się błąd:
Bad Request (400)
Czy można uruchomić Django bez trybu debugowania?
ALLOWED_HOSTS
Odpowiedzi:
ALLOWED_HOSTS
Lista powinna zawierać w pełni kwalifikowanych nazw hostów , a nie adresów URL. Pomiń port i protokół. Jeśli używasz127.0.0.1
, dodałbym równieżlocalhost
do listy:Możesz także użyć
*
do dopasowania dowolnego hosta:Cytując dokumentację:
Odważny nacisk moje .
Otrzymana odpowiedź o statusie 400 jest spowodowana
SuspiciousOperation
wyjątkiem , gdy nagłówek hosta nie pasuje do żadnych wartości na tej liście.źródło
False
. Może mógłbyś opublikować nowe pytanie?./manage.py collectstatic
zrobi to.Dla mnie ten błąd wystąpił, nie ustawiając wartości
USE_X_FORWARDED_HOST
true. Z dokumentów:Moja usługa hostingowa wyraźnie napisała w swojej dokumentacji, że należy użyć tego ustawienia i otrzymuję ten błąd 400, jeśli go zapomnę.
źródło
Miałem ten sam problem i naprawiłem go, ustawiając
ALLOWED_HOSTS = ['*']
i rozwiązując problem ze statycznymi obrazami, musisz zmienić wirtualne ścieżki w konfiguracji środowiska w następujący sposób:Virtual Path Directory
/ static / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /
Mam nadzieję, że Ci to pomoże.
PD: Przepraszam za mój zły angielski.
źródło
Miałem ten sam problem i żadna z odpowiedzi nie rozwiązała mojego problemu, w celu rozwiązania takiej sytuacji lepiej włączyć rejestrowanie, dodając następującą konfigurację do
settings.py
tymczasoweji spróbuj
tail -f /tmp/debug.log
. a kiedy zobaczysz swój problem, możesz sobie z nim poradzić znacznie łatwiej niż debugowanie w ciemno.Mój problem już miał
Nieprawidłowy nagłówek HTTP_HOST: „pt_web: 8000”. Podana nazwa domeny jest nieprawidłowa zgodnie z RFC 1034/1035.
i rozwiązać go poprzez dodanie
proxy_set_header Host $host;
do pliku konfiguracyjnego Nginx i umożliwiając przekierowanie portów przezUSE_X_FORWARDED_PORT = True
wsettings.py
(to dlatego, że w moim przypadku ja słuchałem zamówienie w Nginx na porcie8080
i przekazać je doguni
portu8000
źródło
Dla mnie, ponieważ mam już xampp na 127.0.0.1 i django na 127.0.1.1 i próbowałem dodawać hosty
i dostałem ten sam błąd lub (400) złe żądanie
więc zmieniam adres URL na 127.0.1.1:( użyty port) / project i voila!
musisz sprawdzić jaki jest twój wirtualny adres sieciowy, dla mnie, ponieważ używam stosu bitnami django 2.2.3-1 w systemie Linux, mogę sprawdzić, którego portu używa django. jeśli masz błąd (400 złych żądań), to chyba django w innej sieci wirtualnej .. powodzenia
źródło
W
DEBUG = False
pliku ustawień musisz także skonfigurować listę ALLOWED_HOST. Spróbuj dołączyćALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
W przeciwnym razie możesz otrzymać błąd Bad Request (400) od django.
źródło
Spróbuj uruchomić serwer z opcją --insecure w następujący sposób:
python manage.py runserver --insecure
źródło
Najpierw musiałem zatrzymać serwer apache.
(fe
sudo systemctl stop httpd.service
/sudo systemctl disable httpd.service
).To rozwiązało mój problem oprócz edycji
settings.py
pliku „ ”do
ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']
źródło
Przejdź do ustawień i zlokalizuj plik base.py Ustaw dozwolonych hostów na ALLOWED_HOSTS = ['*']
źródło