Django 2.1 - View decorators

सज्जाकार देखें




django

सज्जाकार देखें

Django कई सज्जाकार प्रदान करता है जिन्हें विभिन्न HTTP सुविधाओं का समर्थन करने के लिए विचारों पर लागू किया जा सकता है।

HTTP तरीकों की अनुमति है

अनुरोध विधि के आधार पर विचारों तक पहुंच को प्रतिबंधित करने के लिए django.views.decorators.http में सज्जाकारों का उपयोग किया जा सकता है। ये सज्जाकार एक django.http.HttpResponseNotAllowed यदि शर्तों को पूरा नहीं किया गया है।

require_http_methods(request_method_list) [source]

डेकोरेटर की आवश्यकता है कि एक दृश्य केवल विशेष अनुरोध विधियों को स्वीकार करता है। उपयोग:

from django.views.decorators.http import require_http_methods

@require_http_methods(["GET", "POST"])
def my_view(request):
    # I can assume now that only GET or POST requests make it this far
    # ...
    pass

ध्यान दें कि अनुरोध के तरीके अपरकेस में होने चाहिए।

require_GET()

डेकोरेटर को यह देखने की आवश्यकता होती है कि कोई दृश्य केवल GET पद्धति को स्वीकार करता है।

require_POST()

डेकोरेटर की आवश्यकता है कि एक दृश्य केवल POST विधि को स्वीकार करता है।

require_safe()

डेकोरेटर को यह आवश्यक है कि एक दृश्य केवल GET और HEAD विधियों को स्वीकार करे। इन विधियों को आमतौर पर "सुरक्षित" माना जाता है, क्योंकि उनके पास अनुरोधित संसाधन को पुनर्प्राप्त करने के अलावा अन्य कार्रवाई करने का महत्व नहीं होना चाहिए।

ध्यान दें

वेब सर्वर को हेडरों को अपरिवर्तित छोड़ते समय HEAD अनुरोधों की प्रतिक्रियाओं की सामग्री को स्वचालित रूप से अलग करना चाहिए, ताकि आप अपने विचारों में जीईटी अनुरोधों की तरह ही एचआईएडी अनुरोधों को संभाल सकें। चूँकि कुछ सॉफ़्टवेयर, जैसे लिंक चेकर्स, HEAD अनुरोधों पर निर्भर करते हैं, आप आवश्यकता_ require_safe बजाय आवश्यकता_सेफ़ का उपयोग करना पसंद कर सकते हैं।

सशर्त दृश्य प्रसंस्करण

django.views.decorators.http में निम्नलिखित सज्जाकार का उपयोग विशेष विचारों पर कैशिंग व्यवहार को नियंत्रित करने के लिए किया जा सकता है।

condition(etag_func=None, last_modified_func=None) [source]
etag(etag_func) [source]
last_modified(last_modified_func) [source]

इन डेकोरेटर्स का इस्तेमाल ETag और Last-Modified हेडर्स जेनरेट करने के लिए किया जा सकता है; सशर्त दृश्य प्रसंस्करण देखें

GZip संपीड़न

django.views.decorators.gzip में सज्जाकार एक प्रति-दृश्य के आधार पर सामग्री संपीड़न को नियंत्रित करते हैं।

gzip_page()

यदि ब्राउज़र gzip संपीड़न की अनुमति देता है तो यह डेकोरेटर सामग्री को संपीड़ित करता है। यह तदनुसार Vary हैडर को सेट करता है, ताकि कैश Accept-Encoding हेडर पर अपने भंडारण को आधार बनाए।

वैरी हेडर

django.views.decorators.vary में सज्जाकारों का उपयोग विशिष्ट अनुरोध हेडर के आधार पर कैशिंग को नियंत्रित करने के लिए किया जा सकता है।

vary_on_headers(*headers) [source]

Vary हेडर परिभाषित करता है जो कैश कैश बनाने के दौरान कैश तंत्र के हेडर को ध्यान में रखता है।

अलग हेडर का उपयोग करके देखें।

कैशिंग

django.views.decorators.cache नियंत्रण सर्वर और क्लाइंट-साइड कैशिंग में सज्जाकार।

cache_control(**kwargs) [source]

यह डेकोरेटर सभी कीवर्ड के तर्कों को जोड़कर रिस्पॉन्स के Cache-Control हेडर को पैच करता है। परिवर्तन के विवरण के लिए patch_cache_control() देखें।

never_cache(view_func) [source]

यह डेकोरेटर एक Cache-Control: max-age=0, no-cache, no-store, must-revalidate जोड़ता है Cache-Control: max-age=0, no-cache, no-store, must-revalidate एक प्रतिक्रिया के लिए हेडर को फिर Cache-Control: max-age=0, no-cache, no-store, must-revalidate ताकि यह इंगित किया जा सके कि एक पृष्ठ कभी भी कैश नहीं होना चाहिए।