Je suis nouveau sur django-1.6. Lorsque je lance le serveur django avec DEBUG = True
, il fonctionne parfaitement. Mais lorsque je passe DEBUG
à False
dans le fichier de paramètres, le serveur s'est arrêté et il donne l'erreur suivante à l'invite de commande:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
Après avoir changé ALLOWED_HOSTS
pour ["http://127.0.0.1:8000",]
, dans le navigateur, j'obtiens l'erreur:
Bad Request (400)
Est-il possible d'exécuter Django sans mode de débogage?
ALLOWED_HOSTS
Réponses:
La
ALLOWED_HOSTS
liste doit contenir qualifiés noms d'hôte , non urls. Oubliez le port et le protocole. Si vous utilisez127.0.0.1
, j'ajouterais aussilocalhost
à la liste:Vous pouvez également utiliser
*
pour faire correspondre n'importe quel hôte:Citant la documentation:
Accentuation mienne .
La réponse d'état 400 que vous obtenez est due à une
SuspiciousOperation
exception levée lorsque votre en-tête d'hôte ne correspond à aucune valeur de cette liste.la source
False
. Vous pourriez peut-être poster une nouvelle question?./manage.py collectstatic
volonté.Pour moi, j'ai eu cette erreur en ne définissant pas
USE_X_FORWARDED_HOST
sur true. De la documentation:Mon service d'hébergement a écrit explicitement dans sa documentation que ce paramètre doit être utilisé, et j'obtiens cette erreur 400 si je l'oublie.
la source
J'ai eu le même problème et je l'ai résolu en définissant
ALLOWED_HOSTS = ['*']
et pour résoudre le problème avec les images statiques, vous devez changer les chemins virtuels dans la configuration de l'environnement comme ceci:Répertoire du chemin virtuel
/ static / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /
J'espère que ça t'aide.
PD: désolé pour mon mauvais anglais.
la source
J'ai eu le même problème et aucune des réponses n'a résolu mon problème, pour résoudre la situation comme celle-ci, il est préférable d'activer la journalisation en ajoutant la configuration suivante à
settings.py
temporaireet essayez de
tail -f /tmp/debug.log
. et lorsque vous voyez votre problème, vous pouvez le gérer beaucoup plus facilement que le débogage aveugle.Mon problème était sur le point de
En-tête HTTP_HOST non valide: 'pt_web: 8000'. Le nom de domaine fourni n'est pas valide selon la RFC 1034/1035.
et le résoudre en ajoutant
proxy_set_header Host $host;
au fichier de configuration Nginx et en activant la redirection de port parUSE_X_FORWARDED_PORT = True
danssettings.py
(c'est parce que dans mon cas, j'ai écouté demander dans Nginx sur le port8080
et le passer surguni
le port8000
la source
Pour moi car j'ai déjà xampp sur 127.0.0.1 et django sur 127.0.1.1 et j'ai continué à essayer d'ajouter des hôtes
et j'ai la même erreur ou (400) mauvaise demande
donc je change l'url en 127.0.1.1:(le port utilisé) / project et le tour est joué!
vous devez vérifier quelle est votre adresse de réseau virtuel, pour moi, comme j'utilise la pile bitnami django 2.2.3-1 sous Linux, je peux vérifier quel port django utilise. si vous avez une erreur (400 mauvaise requête) alors je suppose que django sur un réseau virtuel différent .. bonne chance
la source
Avec
DEBUG = False
votre fichier de paramètres, vous devez également configurer la liste ALLOWED_HOST. Essayez d'inclureALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
Sinon, vous pourriez recevoir une erreur Bad Request (400) de django.
la source
Essayez d'exécuter votre serveur avec --insecure comme ceci:
python manage.py runserver --insecure
la source
J'ai dû d'abord arrêter le serveur Apache.
(fe
sudo systemctl stop httpd.service
/sudo systemctl disable httpd.service
).Cela a résolu mon problème en plus de modifier le
settings.py
fichier ' 'à
ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']
la source
Accédez aux paramètres et recherchez le fichier base.py Définissez les hôtes autorisés sur ALLOWED_HOSTS = ['*']
la source