python - شرح - django wiki




جانغو يعطي طلبا سيئا(400) عندما DEBUG=خطأ (4)

أنا جديد على django-1.6. عندما أقوم بتشغيل خادم django مع DEBUG = True ، فإنه يعمل بشكل كامل. ولكن عندما أغير DEBUG إلى False في ملف الإعدادات ، فإن الخادم يتوقف ويمنح الخطأ التالي في موجه الأوامر:

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.

بعد أن غيّرت ALLOWED_HOSTS إلى ["http://127.0.0.1:8000",] ، تظهر رسالة الخطأ في المتصفح:

Bad Request (400)

هل من الممكن تشغيل Django دون وضع التصحيح؟


انتقل إلى الإعدادات وحدد موقع ملف base.py تعيين المضيفين المسموح بهم على ALLOWED_HOSTS = ['*']


باستخدام DEBUG = False في ملف الإعدادات ، تحتاج أيضًا إلى إعداد ALLOWED_HOST. جرّب تضمين ALLOWED_HOST = ['127.0.0.1', 'localhost', 'www.yourdomain.com']

وإلا قد تتلقى خطأً سيئًا (400) من django.


واجهت نفس المشكلة وقمت ALLOWED_HOSTS = ['*'] عن طريق وضع ALLOWED_HOSTS = ['*'] ولحل المشكلة مع الصور الثابتة لديك لتغيير المسارات الافتراضية في بيئة التكوين مثل:

دليل المسار الافتراضي

/ static / / opt / python / current / app / yourpj / static /
/ media / / opt / python / current / app / Nuevo / media /

وآمل أن يساعد أنت.

PD: آسف لبلدي الإنجليزية سيئة.


يجب أن تحتوي قائمة ALLOWED_HOSTS على أسماء ALLOWED_HOSTS المؤهلة تمامًا وليس عناوين url. اترك المنفذ والبروتوكول. إذا كنت تستخدم 127.0.0.1 ، 127.0.0.1 localhost إلى القائمة أيضًا:

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

يمكنك أيضًا استخدام * لمطابقة أي مضيف:

ALLOWED_HOSTS = ['*']

نقلا عن الوثائق:

يمكن أن تكون القيم في هذه القائمة أسماء مؤهلة تمامًا (على سبيل المثال 'www.example.com' ) ، وفي هذه الحالة ستتم مطابقتها مع رأس Host الخاص بالطلب تمامًا (غير حساس لحالة الأحرف ، لا بما في ذلك المنفذ ). يمكن استخدام بداية القيمة بنقطة كحرف بدل '.example.com' فرعي: '.example.com' سيطابق example.com و www.example.com وأي نطاق فرعي آخر لـ example.com . قيمة '*' ستطابق أي شيء ؛ في هذه الحالة ، تكون مسؤولاً عن توفير التحقق الخاص بك من رأس Host (ربما في وسيط ؛ إذا كان الأمر كذلك ، فيجب إدراج هذه الوسيطة أولاً في MIDDLEWARE_CLASSES ).

التركيز الجريء

حالة الاستجابة 400 التي تحصل عليها بسبب استثناء SuspiciousOperation الذي يتم طرحه عندما لا يطابق رأس المضيف أي قيم في هذه القائمة.