Eu sou novo no django-1.6. Quando executo o servidor django DEBUG = True
, ele está funcionando perfeitamente. Mas quando mudo DEBUG
para False
no arquivo de configurações, o servidor parou e dá o seguinte erro no prompt de comando:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
Depois que mudei ALLOWED_HOSTS
para ["http://127.0.0.1:8000",]
, no navegador, recebo o erro:
Bad Request (400)
É possível executar o Django sem o modo de depuração?
ALLOWED_HOSTS
Respostas:
A
ALLOWED_HOSTS
lista deve conter nomes de host totalmente qualificados , não URLs. Deixe de fora a porta e o protocolo. Se você estiver usando127.0.0.1
, eu adicionarialocalhost
à lista também:Você também pode usar
*
para corresponder a qualquer host:Citando a documentação:
Negrito ênfase minha .
A resposta do status 400 que você recebe ocorre devido a uma
SuspiciousOperation
exceção ser levantada quando o cabeçalho do host não corresponde a nenhum valor nessa lista.fonte
False
. Talvez você possa postar uma nova pergunta?./manage.py collectstatic
fará.Para mim, recebi esse erro ao não definir
USE_X_FORWARDED_HOST
como verdadeiro. Dos documentos:Meu serviço de hospedagem escreveu explicitamente em sua documentação que essa configuração deve ser usada, e eu recebo esse erro 400 se o esquecer.
fonte
Eu tive o mesmo problema e o corrigi definindo
ALLOWED_HOSTS = ['*']
e resolvendo o problema com as imagens estáticas, é necessário alterar os caminhos virtuais na configuração do ambiente da seguinte maneira:Diretório de caminho virtual
/ static / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /
Espero que ajude você.
PD: desculpe pelo meu inglês ruim.
fonte
Eu tive o mesmo problema e nenhuma das respostas resolveu o meu problema. Para resolver uma situação como essa, é melhor ativar o log adicionando a seguinte configuração a
settings.py
temporárioe tente
tail -f /tmp/debug.log
. e quando você vir seu problema, poderá lidar com isso com muito mais facilidade do que a depuração às cegas.Meu problema estava prestes a
Cabeçalho HTTP_HOST inválido: 'pt_web: 8000'. O nome de domínio fornecido não é válido de acordo com a RFC 1034/1035.
e resolva-o adicionando
proxy_set_header Host $host;
ao arquivo de configuração do Nginx e ativando o encaminhamento de portaUSE_X_FORWARDED_PORT = True
nosettings.py
(é porque no meu caso, ouvi pedidos no Nginx na porta8080
e passá-lo paraguni
a porta8000
fonte
Para mim, como eu já tenho o xampp no 127.0.0.1 e o django no 127.0.1.1 e continuei tentando adicionar hosts
e recebi o mesmo erro ou (400) solicitação incorreta
então mudo a url para 127.0.1.1:(o porto usado) / project e pronto!
você tem que verificar qual é o seu endereço de rede virtual, para mim, como eu uso o bitnami django stack 2.2.3-1 no Linux, posso verificar qual porta o django está usando. se você tiver um erro (400 pedido ruim), então eu acho que django em diferentes redes virtuais .. boa sorte
fonte
No
DEBUG = False
arquivo de configurações, você também precisa da lista ALLOWED_HOST configurada. Tente incluirALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
Caso contrário, você poderá receber um erro de solicitação inválida (400) do django.
fonte
Tente executar seu servidor com o --insecure da seguinte maneira:
python manage.py runserver --inseguro
fonte
Eu tive que parar o servidor apache primeiro.
(fe
sudo systemctl stop httpd.service
/sudo systemctl disable httpd.service
).Isso resolveu meu problema além de editar o
settings.py
arquivo ' 'para
ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']
fonte
Navegue até as configurações e localize o arquivo base.py Defina os hosts permitidos como ALLOWED_HOSTS = ['*']
fonte