Soy nuevo en django-1.6. Cuando ejecuto el servidor django con DEBUG = True
, funciona perfectamente. Pero cuando cambio DEBUG
a False
en el archivo de configuración, el servidor se detuvo y se da el siguiente error en el símbolo del sistema:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
Después de cambiar ALLOWED_HOSTS
a ["http://127.0.0.1:8000",]
, en el navegador me sale el error:
Bad Request (400)
¿Es posible ejecutar Django sin modo de depuración?
ALLOWED_HOSTS
Respuestas:
La
ALLOWED_HOSTS
lista debe contener nombres de host totalmente calificados , no URL. Deja de lado el puerto y el protocolo. Si está utilizando127.0.0.1
, también agregaríalocalhost
a la lista:También puede usar
*
para hacer coincidir cualquier host:Citando la documentación:
El énfasis en negrita es mío .
La respuesta de estado 400 que obtiene se debe a una
SuspiciousOperation
excepción que se genera cuando el encabezado del host no coincide con ningún valor en esa lista.fuente
False
. ¿Quizás podrías publicar una nueva pregunta?./manage.py collectstatic
lo que probablemente sea suficiente.Para mí, recibí este error al no establecerlo
USE_X_FORWARDED_HOST
en verdadero. De los documentos:Mi servicio de alojamiento escribió explícitamente en su documentación que esta configuración debe usarse, y recibo este error 400 si lo olvido.
fuente
Tuve el mismo problema y lo solucioné configurando
ALLOWED_HOSTS = ['*']
y para resolver el problema con las imágenes estáticas, debe cambiar las rutas virtuales en la configuración del entorno de esta manera:Directorio de ruta virtual
/ static / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /
Espero que te ayude.
PD: perdón por mi mal inglés.
fuente
Tuve el mismo problema y ninguna de las respuestas resolvió mi problema, para resolver una situación como esta es mejor habilitar el registro agregando la siguiente configuración a
settings.py
temporale intenta hacerlo
tail -f /tmp/debug.log
. y cuando vea su problema, puede manejarlo mucho más fácilmente que la depuración ciega.Mi problema estaba a punto de
Encabezado HTTP_HOST no válido: 'pt_web: 8000'. El nombre de dominio proporcionado no es válido de acuerdo con RFC 1034/1035.
y resolverlo agregando
proxy_set_header Host $host;
al archivo de configuración de Nginx y habilitando el reenvío de puertosUSE_X_FORWARDED_PORT = True
en elsettings.py
(es porque en mi caso he escuchado solicitar en Nginx en el puerto8080
y pasarlo alguni
puerto8000
fuente
Para mí, ya tengo xampp en 127.0.0.1 y django en 127.0.1.1 y seguí intentando agregar hosts
y recibí el mismo error o (400) solicitud incorrecta
entonces cambio la url a 127.0.1.1:(the puerto usado) / project y listo!
tienes que verificar cuál es tu dirección de red virtual, para mí, ya que uso bitnami django stack 2.2.3-1 en Linux, puedo verificar qué puerto está usando django. si tienes un error (400 solicitudes incorrectas) entonces supongo que django en una red virtual diferente ... buena suerte
fuente
Con
DEBUG = False
su archivo de configuración, también necesita configurar la lista ALLOWED_HOST. Intenta incluirALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
De lo contrario, es posible que reciba un error de solicitud incorrecta (400) de django.
fuente
Intente ejecutar su servidor con --seguro de la siguiente manera:
python manage.py runserver --insecure
fuente
Primero tuve que detener el servidor apache.
(fe
sudo systemctl stop httpd.service
/sudo systemctl disable httpd.service
).Eso resolvió mi problema además de editar el
settings.py
archivo ' 'a
ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']
fuente
Navegue a la configuración y localice el archivo base.py Establezca los hosts permitidos en ALLOWED_HOSTS = ['*']
fuente