model-view-controller - Django बनाम मॉडल देखें नियंत्रक




frameworks (5)

क्या कोई मुझे बता सकता है कि डीजेगो और मॉडल व्यू कंट्रोलर पैटर्न के बीच दुविधाएं कहां हैं?

कार्यात्मक रूप से, हम उन मतभेदों से क्या उम्मीद कर सकते हैं - यानी Django की तुलना में अलग-अलग काम करता है, उदाहरण के लिए, रेल पर रूबी?


Answers

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

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


Django FAQ स्वयं शुरू करने के लिए एक सभ्य जगह है:

ध्यान रखें कि "मॉडल व्यू कंट्रोलर" सिर्फ एक पैटर्न है, यानी एक सामान्य वास्तुकला का वर्णन करने का प्रयास। तो एक बेहतर सवाल यह हो सकता है कि "Django मॉडल व्यू कंट्रोलर पैटर्न को कितनी अच्छी तरह फिट करता है?"


जब आप कोडवर्क फ्रेम के नामों के बारे में सोचते हैं, तो कोई संदेह नहीं है, उदाहरण के लिए RoR। लेकिन यह आपके द्वारा models देने वाले उपयोग पर निर्भर करता है, क्योंकि Django पर वे आसानी से कुछ तर्क रखते हैं कि अन्य ढांचे पर नियंत्रक स्तर पर रहेगा।

Django पर view डेटा लाने के लिए प्रश्नों का एक सेट बन जाता है, और उन्हें टेम्पलेट में पास करता है।


Django बुक के अनुसार, Django एमवीसी पैटर्न का पालन करने के लिए पर्याप्त रूप से पर्याप्त एमवीसी पैटर्न का पालन करता है।

Django को एक एमटीवी ढांचे के रूप में जाना जाता है क्योंकि नियंत्रक ढांचे द्वारा ही संभाला जाता है और अधिकांश उत्साह मॉडल, टेम्पलेट्स और विचारों में होता है।

आप यहां एमटीवी / एमवीसी के बारे में अधिक पढ़ सकते हैं:

एमटीवी (या एमवीसी) विकास पैटर्न

यदि आप रेलवे पर रूबी जैसे अन्य एमवीसी वेब-डेवलपमेंट फ्रेमवर्क से परिचित हैं, तो आप विचार कर सकते हैं कि Django विचार नियंत्रकों और Django टेम्पलेट्स विचारों के रूप में विचार कर सकते हैं

एमवीसी की विभिन्न व्याख्याओं के बारे में यह एक दुर्भाग्यपूर्ण भ्रम है।

डीजेगो की एमवीसी की व्याख्या में, दृश्य उस डेटा का वर्णन करता है जो उपयोगकर्ता को प्रस्तुत किया जाता है; यह जरूरी नहीं है कि डेटा कैसा दिखता है, लेकिन कौन सा डेटा प्रस्तुत किया जाता है।

इसके विपरीत, रेल और इसी तरह के ढांचे पर रूबी का सुझाव है कि नियंत्रक के काम में यह तय करना शामिल है कि उपयोगकर्ता को कौन सा डेटा प्रस्तुत किया जाता है, जबकि दृश्य कड़ाई से डेटा दिखता है, न कि डेटा कौन सा डेटा प्रस्तुत किया जाता है।


Django को वेब पृष्ठों को वितरित करने के लिए आसानी से उपयोग करने के लिए डिज़ाइन किया गया है। यदि आप इसके साथ confortable नहीं हैं शायद आपको एक और समाधान का उपयोग करना चाहिए।

मैं मॉडल पर रूट या सामान्य संचालन लिख रहा हूं (एक ही इंटरफ़ेस रखने के लिए) और अन्य मॉडल के नियंत्रक पर। अगर मुझे दूसरे मॉडल से ऑपरेशन की ज़रूरत है तो मैं इसके नियंत्रक को आयात करता हूं।

यह दृष्टिकोण मेरे लिए और मेरे अनुप्रयोगों की जटिलता के लिए पर्याप्त है।

हेडडे की प्रतिक्रिया एक उदाहरण है जो डीजेंगो और पायथन की लचीलापन दिखाता है।

वैसे भी बहुत दिलचस्प सवाल!





django model-view-controller frameworks