Saya baru mengenal Django-1.6. Ketika saya menjalankan server Django dengan DEBUG = True
, itu berjalan dengan sempurna. Tetapi ketika saya mengubah DEBUG
ke False
dalam file pengaturan, maka server berhenti dan memberikan kesalahan berikut pada prompt perintah:
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
Setelah saya ubah ALLOWED_HOSTS
ke ["http://127.0.0.1:8000",]
, di browser saya mendapatkan kesalahan:
Bad Request (400)
Apakah mungkin menjalankan Django tanpa mode debug?
ALLOWED_HOSTS
Jawaban:
The
ALLOWED_HOSTS
daftar harus berisi memenuhi syarat nama host , tidak url. Tinggalkan port dan protokolnya. Jika Anda menggunakan127.0.0.1
, saya akan menambahkanlocalhost
ke daftar juga:Anda juga dapat menggunakan
*
untuk mencocokkan host mana pun :Mengutip dokumentasi:
Penekanan berani saya .
Respons status 400 yang Anda dapatkan disebabkan oleh
SuspiciousOperation
pengecualian yang diajukan ketika header host Anda tidak cocok dengan nilai apa pun dalam daftar itu.sumber
False
. Mungkin Anda bisa memposting pertanyaan baru?./manage.py collectstatic
akan dilakukan.Bagi saya, saya mendapatkan kesalahan ini dengan tidak menyetel
USE_X_FORWARDED_HOST
ke true. Dari dokumen:Layanan hosting saya menulis secara eksplisit dalam dokumentasi mereka bahwa pengaturan ini harus digunakan, dan saya mendapatkan 400 kesalahan ini jika saya lupa.
sumber
Saya memiliki masalah yang sama dan saya memperbaikinya dengan menetapkan
ALLOWED_HOSTS = ['*']
dan untuk menyelesaikan masalah dengan gambar statis Anda harus mengubah jalur virtual dalam konfigurasi lingkungan seperti ini:Direktori Path Virtual
/ static / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /
Saya harap ini membantu Anda.
PD: maaf untuk bahasa Inggris saya yang buruk.
sumber
Saya memiliki masalah yang sama dan tidak ada jawaban yang menyelesaikan masalah saya, untuk menyelesaikan situasi seperti ini, lebih baik mengaktifkan pencatatan dengan menambahkan konfigurasi berikut untuk
settings.py
sementaradan coba
tail -f /tmp/debug.log
. dan ketika Anda melihat masalah Anda, Anda bisa mengatasinya lebih mudah daripada debugging buta.Masalah saya hampir
Header HTTP_HOST tidak valid: 'pt_web: 8000'. Nama domain yang diberikan tidak valid menurut RFC 1034/1035.
dan mengatasinya dengan menambahkan
proxy_set_header Host $host;
ke file konfigurasi Nginx dan mengaktifkan port forwarding olehUSE_X_FORWARDED_PORT = True
disettings.py
(itu karena dalam kasus saya saya sudah mendengarkan permintaan di Nginx pada port8080
dan meneruskannya keguni
pada port8000
sumber
Bagi saya karena saya sudah xampp pada 127.0.0.1 dan Django pada 127.0.1.1 dan saya terus mencoba menambahkan host
dan saya mendapat kesalahan yang sama atau (400) permintaan buruk
jadi saya mengubah url ke 127.0.1.1:( port yang digunakan) / proyek dan voila!
Anda harus memeriksa apa alamat jaringan virtual Anda, bagi saya karena saya menggunakan bitnami django stack 2.2.3-1 di Linux saya dapat memeriksa port django yang digunakan. jika Anda memiliki kesalahan (400 permintaan buruk) maka saya kira Django pada jaringan virtual yang berbeda .. semoga berhasil
sumber
Dengan
DEBUG = False
di file pengaturan Anda, Anda juga perlu mengatur ALLOWED_HOST daftar. Coba sertakanALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']
Kalau tidak, Anda mungkin menerima kesalahan Permintaan Buruk (400) dari Django.
sumber
Cobalah untuk menjalankan server Anda dengan --insecure seperti ini:
python manage.py runserver --insecure
sumber
Saya harus menghentikan server apache terlebih dahulu.
(fe
sudo systemctl stop httpd.service
/sudo systemctl disable httpd.service
).Itu memecahkan masalah saya selain mengedit
settings.py
file ' 'untuk
ALLOWED_HOSTS = ['se.rv.er.ip', 'www.example.com']
sumber
Arahkan ke pengaturan dan cari file base.py Setel host yang diizinkan ke ALLOWED_HOSTS = ['*']
sumber