Ich bin neu in Django-1.6. Wenn ich den Django-Server mit betreibe DEBUG = True
, läuft er perfekt. Wenn ich DEBUG
jedoch False
in die Einstellungsdatei wechsle , wird der Server gestoppt und an der Eingabeaufforderung wird der folgende Fehler angezeigt:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
Nachdem ich zu gewechselt ALLOWED_HOSTS
habe ["http://127.0.0.1:8000",]
, erhalte ich im Browser die Fehlermeldung:
Bad Request (400)
Ist es möglich, Django ohne Debug-Modus auszuführen?
ALLOWED_HOSTS
Antworten:
Die
ALLOWED_HOSTS
Liste sollte vollständig qualifizierte Hostnamen und keine URLs enthalten. Lassen Sie den Port und das Protokoll weg. Wenn Sie verwenden127.0.0.1
, würde ichlocalhost
der Liste auch hinzufügen :Sie können auch verwenden ,
*
passen jeden Host:Zitieren der Dokumentation:
Meine kühne Betonung .
Die Status 400-Antwort, die Sie erhalten, ist auf eine
SuspiciousOperation
Ausnahme zurückzuführen , die ausgelöst wird, wenn Ihr Host-Header keinen Werten in dieser Liste entspricht.quelle
False
. Vielleicht könnten Sie eine neue Frage stellen?./manage.py collectstatic
.Ich habe diesen Fehler erhalten, indem ich nicht
USE_X_FORWARDED_HOST
auf true gesetzt habe. Aus den Dokumenten:Mein Hosting-Service hat in seiner Dokumentation ausdrücklich geschrieben, dass diese Einstellung verwendet werden muss , und ich erhalte diesen 400-Fehler, wenn ich ihn vergesse.
quelle
Ich hatte das gleiche Problem und habe es behoben, indem ich
ALLOWED_HOSTS = ['*']
die virtuellen Pfade in der Umgebungskonfiguration wie folgt geändert habe, um das Problem mit den statischen Images festzulegen und zu lösen:Virtual Path Verzeichnis
/ static / / opt / Python / Strom / app / yourpj / static /
/ media / / opt / Python / Strom / app / Nuevo / media /
Ich hoffe es hilft dir.
PD: Entschuldigung für mein schlechtes Englisch.
quelle
Ich hatte das gleiche Problem und keine der Antworten löste mein Problem. Um diese Situation zu lösen, ist es besser, die Protokollierung zu aktivieren, indem Sie die folgende Konfiguration zu
settings.py
temporär hinzufügenund versuche es
tail -f /tmp/debug.log
. und wenn Sie Ihr Problem sehen, können Sie es viel einfacher behandeln als blindes Debuggen.Mein Problem war im Begriff zu
Ungültiger HTTP_HOST-Header: 'pt_web: 8000'. Der angegebene Domainname ist gemäß RFC 1034/1035 nicht gültig.
und beheben Sie es, indem Sie es
proxy_set_header Host $host;
zur Nginx-Konfigurationsdatei hinzufügen und die Portweiterleitung überUSE_X_FORWARDED_PORT = True
in aktivierensettings.py
(in meinem Fall habe ich die Anforderung in Nginx am Port abgehört8080
undguni
an den Port übergeben8000
quelle
Für mich, da ich bereits xampp auf 127.0.0.1 und django auf 127.0.1.1 habe und immer wieder versucht habe, Hosts hinzuzufügen
und ich habe den gleichen Fehler oder (400) schlechte Anfrage
also ändere ich die url auf 127.0.1.1:(das verwendete port) / project und voila!
Sie müssen überprüfen, wie Ihre virtuelle Netzwerkadresse lautet. Wenn ich den Bitnami Django Stack 2.2.3-1 unter Linux verwende, kann ich überprüfen, welchen Port Django verwendet. Wenn Sie einen Fehler haben (400 schlechte Anfrage), dann denke ich, Django in einem anderen virtuellen Netzwerk. Viel Glück
quelle
Mit
DEBUG = False
in Ihrer Einstellungsdatei müssen Sie auch die Liste ALLOWED_HOST einrichten. Versuchen Sie es mitALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
Andernfalls erhalten Sie möglicherweise einen Fehler "Bad Request (400)" von django.
quelle
Versuchen Sie, Ihren Server mit --insecure wie folgt auszuführen:
python manage.py runserver - unsicher
quelle
Ich musste zuerst den Apache-Server stoppen.
(zB
sudo systemctl stop httpd.service
/sudo systemctl disable httpd.service
).Das löste mein Problem neben der Bearbeitung der '
settings.py
' Dateizu
ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']
quelle
Navigieren Sie zu den Einstellungen und suchen Sie die Datei base.py. Setzen Sie die zulässigen Hosts auf ALLOWED_HOSTS = ['*'].
quelle