2012-04-04 23 views
18

ऐसा लगता है कि एक संदर्भ प्रोसेसर जो कुछ भी कर सकता है, मिडलवेयर कर सकता है। तो संदर्भ प्रोसेसर का मुद्दा क्या है? क्या वे सिर्फ मिडलवेयर-लाइट हैं?संदर्भ प्रोसेसर बनाम मिडलवेयर बनाम django

उत्तर

14

संदर्भ प्रोसेसर का उपयोग अतिरिक्त डेटा के साथ टेम्पलेट प्रदान करने के लिए किया जाता है। मिडलवेयर कुछ सार्थक तरीके से अनुरोध/प्रतिक्रिया वस्तुओं को रोकना और उन्हें संशोधित करना (या अन्य व्यवहार को ट्रिगर करना) है।

1

वे विभिन्न संदर्भों के लिए विभिन्न स्तर के ढेर में काम करते हैं। सामान्य रूप से रूढ़िवादी होने के लिए ढांचे के ढेर को रखना मुश्किल है, विशेष रूप से केवल एकमात्र चीज जो डीजेगो प्रसंस्करण जैसे वेब ढांचे अनुरोध और प्रतिक्रिया है। हां, टेम्पलेट को प्रस्तुत करते समय context_processor द्वारा context.user के बजाय request.user का उपयोग कर सकते हैं। लेकिन हो सकता है कि आप विशेषताओं को नहीं चाहते हैं जो केवल टेम्पलेट में उपयोग किए जाते हैं, हर अनुरोध पर सेट होते हैं।

इसके अलावा, सजावटी दृश्य-स्तर के संचालन के लिए मिडलवेयर से लचीला है, लेकिन यह कहना मुश्किल है कि मिडलवेयर एक सजावटी-लाइट है। मैं संदर्भ प्रोसेसर को असाइनमेंट टेम्पलेट टैग के रूप में देखना चाहता हूं लेकिन रास्ते में स्वचालित रूप से लोड हो जाता हूं।

19

मिडलवेयर कम स्तर पर Django के अनुरोध/प्रतिक्रिया प्रसंस्करण में एक हुक के रूप में कार्य करता है और यह हल्का है। हुक अनुरोध, प्रतिक्रिया, दृश्य, टेम्पलेट_response, और अपवाद प्रसंस्करण के लिए उपलब्ध हैं। हुक को दृश्य को संभालने से पहले अनुरोध को संशोधित करने की आवश्यकता हो सकती है, इसे डिबगिंग उद्देश्यों के अनुरोध के बारे में जानकारी लॉग इन करने की आवश्यकता हो सकती है, स्थानीय सेट करने के लिए कुकी जांचें, और इसी तरह।

Middleware पर और पढ़ें।

संदर्भ प्रोसेसर बस संदर्भ को संशोधित करते हैं। संदर्भ टेम्पलेट में भेजे गए चर के साथ एक महत्वपूर्ण मूल्य मैपिंग है। एक संदर्भ प्रोसेसर एक अनुरोध ऑब्जेक्ट को इसके तर्क के रूप में लेता है, और संदर्भ में विलय होने वाली वस्तुओं का एक शब्दकोश देता है। संदर्भ आपके टेम्पलेट में आपके दृश्य के अनुसार प्रस्तुत किया जाता है और यह आपके संदर्भ प्रोसेसर में जो कुछ भी विलय करता है उसे जोड़ता है। आप इसे अपने सभी टेम्पलेट्स पर उपलब्ध वैश्विक संदर्भ चर के रूप में सोच सकते हैं।

Context Processors पर और पढ़ें।

दोनों लिखने के लिए काफी सरल हैं और उनका उद्देश्य है। यहाँ एक चित्र से पता चलता है कि जहां मिडलवेयर और संदर्भ एक ठेठ Django प्रवाह में फिट है:

enter image description here

Django फ़्लोचार्ट

  1. उपयोगकर्ता एक पेज

  2. अनुरोध Middlewares अनुरोध तक पहुँचता अनुरोध करता है, जो अनुरोध

  3. URL को कॉन्फ़िगर कर सकता है यूआरएल का उपयोग कर देखें।py

  4. देखें Middlewares कहा जाता है, जो हेरफेर या अनुरोध

  5. दृश्य समारोह मॉडल

  6. सभी मॉडल के माध्यम से

    पहुँच डेटा
  7. दृश्य वैकल्पिक सकता है शुरू हो जाती है का जवाब दे -DB इंटरैक्शन एक प्रबंधक

  8. दृश्यों के जरिए एक विशेष संदर्भ का उपयोग कर सकते हैं यदि आवश्यक हो तो

  9. संदर्भ प्रतिपादन

के लिए खाका करने के लिए पारित हो जाता है
संबंधित मुद्दे