pelicula español descargar cantante python django

python - español - Django da una Solicitud incorrecta(400) cuando DEBUG=False



django wikipedia (6)

Con DEBUG = False en su archivo de configuración, también necesita configurar la lista ALLOWED_HOST. Intente incluir ALLOWED_HOST = [''127.0.0.1'', ''localhost'', ''www.yourdomain.com'']

De lo contrario, podría recibir un error de Solicitud incorrecta (400) de django.

Soy nuevo en django-1.6. Cuando ejecuto el servidor django con DEBUG = True , se está ejecutando perfectamente. Pero cuando cambio DEBUG a False en el archivo de configuración, el servidor se detuvo y aparece el siguiente error en el indicador de comando:

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 aparece el error:

Bad Request (400)

¿Es posible ejecutar Django sin modo de depuración?


La lista ALLOWED_HOSTS debe contener nombres de host completos, no urls. Deja fuera el puerto y el protocolo. Si está usando 127.0.0.1 , yo también agregaría localhost a la lista:

ALLOWED_HOSTS = [''127.0.0.1'', ''localhost'']

También puedes usar * para hacer coincidir cualquier host:

ALLOWED_HOSTS = [''*'']

Citando la documentación:

Los valores en esta lista pueden ser nombres completamente calificados (por ejemplo, ''www.example.com'' ), en cuyo caso se compararán exactamente con el encabezado del Host la solicitud (sin distinción de mayúsculas y minúsculas, sin incluir el puerto ). Un valor que comienza con un período se puede usar como un comodín de subdominio: ''.example.com'' coincidirá con example.com , www.example.com y cualquier otro subdominio de example.com . Un valor de ''*'' coincidirá con cualquier cosa; en este caso, usted es responsable de proporcionar su propia validación del encabezado del Host (tal vez en un middleware; si es así, este middleware debe aparecer primero en MIDDLEWARE_CLASSES ).

Énfasis en negrita el mio

La respuesta de estado 400 que obtiene se debe a una excepción SuspiciousOperation se genera cuando el encabezado de su host no coincide con ningún valor en esa lista.


Para mí, recibí este error al no establecer USE_X_FORWARDED_HOST en verdadero. De la documentación:

Esto solo debe habilitarse si un proxy que establece este encabezado está en uso.

Mi servicio de alojamiento wrote explícitamente en su documentación que esta configuración debe usarse, y recibo este error 400 si lo olvido.


Tuve el mismo problema y lo solucioné configurando ALLOWED_HOSTS = [''*''] y para resolver el problema con las imágenes estáticas, tiene que 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.


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 temporal

LOGGING = { ''version'': 1, ''disable_existing_loggers'': False, ''handlers'': { ''file'': { ''level'': ''DEBUG'', ''class'': ''logging.FileHandler'', ''filename'': ''/tmp/debug.log'', }, }, ''loggers'': { ''django'': { ''handlers'': [''file''], ''level'': ''DEBUG'', ''propagate'': True, }, }, }

y tratar de tail -f /tmp/debug.log . y cuando ve 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 resuélvalo agregando proxy_set_header Host $host; al archivo de configuración de Nginx y habilitar el reenvío de puertos con USE_X_FORWARDED_PORT = True en la settings.py (es porque en mi caso he escuchado la solicitud en Nginx en el puerto 8080 y se la guni a guni en el puerto 8000


Vaya a la configuración y localice el archivo base.py. Configure los hosts permitidos en ALLOWED_HOSTS = [''*'']