Django 2.1 - The redirects app

रीडायरेक्ट ऐप




django

रीडायरेक्ट ऐप

Django एक वैकल्पिक रीडायरेक्ट एप्लिकेशन के साथ आता है। यह आपको एक डेटाबेस में सरल रीडायरेक्ट स्टोर करने देता है और आपके लिए रीडायरेक्टिंग को हैंडल करता है। यह डिफ़ॉल्ट रूप से HTTP रिस्पांस स्टेटस कोड 301 Moved Permanently है।

स्थापना

पुनर्निर्देशन एप्लिकेशन को स्थापित करने के लिए, इन चरणों का पालन करें:

  1. सुनिश्चित करें कि django.contrib.sites फ्रेमवर्क स्थापित है
  2. अपनी INSTALLED_APPS सेटिंग में 'django.contrib.redirects' जोड़ें।
  3. अपने MIDDLEWARE सेटिंग में 'django.contrib.redirects.middleware.RedirectFallbackMiddleware' जोड़ें।
  4. कमांड manage.py migrate चलाएं।

यह काम किस प्रकार करता है

django_redirect manage.py migrate आपके डेटाबेस में एक django_redirect टेबल बनाता है। यह site_id , old_path और new_path फ़ील्ड्स के साथ एक साधारण लुकअप तालिका है।

RedirectFallbackMiddleware सभी काम करता है। जब भी कोई भी Django एप्लिकेशन 404 त्रुटि उठाता है, तो यह मिडलवेयर एक अंतिम उपाय के रूप में अनुरोधित URL के लिए पुनर्निर्देशन डेटाबेस की जाँच करता है। विशेष रूप से, यह दिए गए old_path साथ साइट ID वाली SITE_ID सेटिंग से मेल खाती है।

  • यदि यह एक मैच पाता है, और new_path खाली नहीं है, तो यह 301 ("मूव्ड परमानेंटली") रीडायरेक्ट का उपयोग करके new_path रीडायरेक्ट करता है। आप RedirectFallbackMiddleware को उप-वर्ग कर सकते हैं और response_redirect_class RedirectFallbackMiddleware को django.http.HttpResponseRedirect पर सेट करके 302 Moved Temporarily बजाय 302 Moved Temporarily पुनर्निर्देशित का उपयोग कर सकते हैं।
  • यदि यह एक मिलान पाता है, और new_path खाली है, तो यह 410 ("गया") HTTP हेडर और खाली (सामग्री-कम) प्रतिक्रिया भेजता है।
  • यदि यह मेल नहीं खाता है, तो अनुरोध हमेशा की तरह संसाधित होना जारी है।

मिडिलवेयर केवल 404s के लिए सक्रिय हो जाता है - 500s या किसी अन्य स्थिति कोड की प्रतिक्रियाओं के लिए नहीं।

ध्यान दें कि MIDDLEWARE का क्रम मायने रखता है। आम तौर पर, आप सूची के अंत में RedirectFallbackMiddleware डाल सकते हैं, क्योंकि यह एक अंतिम उपाय है।

मिडलवेयर पर अधिक के लिए, मिडलवेयर डॉक्स पढ़ें।

रीडायरेक्ट को कैसे जोड़ें, बदलें और हटाएं

व्यवस्थापक इंटरफ़ेस के माध्यम से

यदि आपने स्वचालित Django व्यवस्थापक इंटरफ़ेस सक्रिय किया है, तो आपको व्यवस्थापक सूचकांक पृष्ठ पर "पुनर्निर्देशन" अनुभाग देखना चाहिए। सिस्टम में किसी अन्य ऑब्जेक्ट को संपादित करने के रूप में रीडायरेक्ट संपादित करें।

पायथन एपीआई के माध्यम से

class models.Redirect

रीडायरेक्ट को एक मानक Django मॉडल द्वारा दर्शाया जाता है, जो django/contrib/redirects/models.py । आप Django डेटाबेस API के माध्यम से रीडायरेक्ट ऑब्जेक्ट तक पहुँच सकते हैं।

middleware

class middleware.RedirectFallbackMiddleware

आप मिडलवेयर द्वारा उपयोग किए गए HttpResponse क्लासेस को RedirectFallbackMiddleware उप-वर्ग बनाकर और response_gone_class और / या response_redirect_class ओवरराइड करके बदल सकते हैं।

response_gone_class

HttpResponse वर्ग का उपयोग तब किया जाता है जब अनुरोध पथ के लिए कोई Redirect नहीं मिलता है या रिक्त new_path मान होता है।

HttpResponseGone लिए डिफ़ॉल्ट।

response_redirect_class

HttpResponse वर्ग पुनर्निर्देशित करता है।

HttpResponsePermanentRedirect को डिफ़ॉल्ट।