2012-01-31 37 views
11

मैं अक्सर लोगों को दावा करता हूं कि उनका बैकएंड Django में लागू किया गया है, लेकिन Django को फ्रंटेंड के लिए नहीं माना जाता है? मुझे लगता है कि बैकएंड व्यापार तर्क को संदर्भित करता है जहां फ्रंटेंड प्रेजेंटेशन को संदर्भित करता है। क्या मैं कुछ भूल रहा हूँ?फ्रंटोज़ या बैकएंड के लिए Django है?

+1

इसकी साइट [साइट] (https://www.djangoproject.com/) पर पहला पृष्ठ आपको बताता है कि django क्या है: एक उच्च स्तरीय पायथन वेब ढांचा –

+1

@ मार्सिन मैं वेब विकास के लिए बहुत नया हूं और मैं ' मैं सिर्फ तर्कसंगत हूं कि Django व्यापार तर्क के लिए क्या कर सकता है। कहें, पेपैल जैसी साइट के साथ, क्या सभी लेनदेन प्रसंस्करण Django का उपयोग करके कार्यान्वित किया जाएगा क्योंकि यह मध्य-स्तर है? प्रस्तुति तर्क ब्राउज़र में है? – Kar

+0

@ केट: निश्चित रूप से, यह हो सकता है कि आप जो भी हो, वह हो। मुझे अभी भी समझ में नहीं आता है कि आप शब्दावली के इस प्रश्न पर क्यों लटकाए गए हैं। – Marcin

उत्तर

38

न तो।

Django एक ढांचा है, एक भाषा नहीं। पायथन वह भाषा है जिसमें Django लिखा है।

Django Python libs का एक संग्रह है जो आपको एक गुणवत्ता वेब अनुप्रयोग को तेज़ी से और कुशलतापूर्वक बनाने की अनुमति देता है, और दोनों फ्रंटेंड और बैकएंड के लिए उपयुक्त है।

हालांकि, Django अपने "Django व्यवस्थापक" के लिए बहुत प्रसिद्ध है, एक ऑटो जनरेटेड बैकएंड जो आपको बहुत अधिक सरल उपयोग मामलों के लिए बहुत अधिक उपयोग के बिना वेबसाइट को प्रबंधित करने की अनुमति देता है।

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

बैकएंड के लिए, डैंजो एक ओआरएम के साथ आता है जो आपको उपयोगकर्ता डेटा को संसाधित करने और डेटा और संकेतों को सत्यापित करने, पर्यवेक्षक पैटर्न के एन कार्यान्वयन के लिए आसानी से फॉर्म, एक HTML स्वतंत्र कार्यान्वयन) के साथ अपने डेटा स्रोत में हेरफेर करने देता है। इसके अलावा उपयोग के मामले में विशिष्ट निफ्टी छोटे उपकरण।

बैकएंड काम के बाकी हिस्सों के लिए Django मदद नहीं करता है, आप बस नियमित पायथन का उपयोग करते हैं। व्यापार तर्क एक बहुत व्यापक शब्द है।

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

+0

यदि व्यवसाय तर्क को 3-स्तरीय आर्किटेक्चर में प्रस्तुति से अलग किया गया है, तो व्यापार तर्क के लिए Django का उपयोग करने की आवश्यकता नहीं है, है ना? सभी 'वेबबी' सामान केवल प्रस्तुति परत में मौजूद हैं, है ना? – Kar

+0

@ केट: डीजेंगो में, आप व्यवसाय तर्क को प्रस्तुति तर्क से अलग करने की अपेक्षा करेंगे। – Marcin

+0

Django व्यापार तर्क के लिए भी उपकरण एम्बेड करें: ओआरएम और रूपों। आपको उनका उपयोग करने की ज़रूरत नहीं है, लेकिन यदि आप करते हैं तो वे आपको बहुत तेज बना देंगे। –

3

(क) Django एक रूपरेखा है, न कि भाषा है

(ख) मुझे यकीन है कि तुम क्या भूल रहे हैं नहीं कर रहा हूँ - वहाँ कोई कारण नहीं क्यों आप एक वेब अनुप्रयोग में व्यापार तर्क नहीं हो सकता है। Django में, आप आमतौर पर प्रस्तुति तर्क व्यापार तर्क से अलग होने की उम्मीद करेंगे। सिर्फ इसलिए कि यह एक ही अनुप्रयोग सर्वर में होस्ट किया गया है, यह इस बात का पालन नहीं करता है कि दो परतें उलझी हुई हैं।

(सी) Django templating प्रदान करता है, लेकिन यह क्लाइंट-साइड सामग्री उत्पन्न करने के लिए समृद्ध पुस्तकालय प्रदान नहीं करता है।

+0

पर इतने कठोर हो सकते हैं, लेकिन यदि व्यापार तर्क वेब ऐप (सिंगल-स्तरीय आर्किटेक्चर?) में है तो फ्रंट एंड एंड बैक एंड के बीच कोई अंतर नहीं है, है ना? यह सिर्फ एक-स्तरीय है। – Kar

+0

@ केट: आप ब्राउज़र में अपने सभी प्रस्तुति तर्क, एक django मध्यम स्तर में व्यापार तर्क, और एक डेटाबेस परत हो सकता है। आप एक अलग django परियोजना भी बैकएंड सेवाएं प्रदान कर सकते हैं। – Marcin

4

ऐसा लगता है कि आप वास्तव में एक एमवीसी (मॉडल-व्यू-कंट्रोलर) पैटर्न के बारे में बात कर रहे हैं, जहां तर्क विभिन्न "स्तर" में विभाजित है। एक फ्रेमवर्क के रूप में Django, एमवीसी (loosely) का पालन करता है। आपके पास ऐसे मॉडल हैं जिनमें आपके व्यवसाय तर्क शामिल हैं और सीधे आपके डेटाबेस में तालिकाओं से संबंधित हैं, जो प्रभाव वास्तव में नियंत्रक की तरह कार्य करते हैं, अनुरोधों को संभालने और प्रतिक्रियाओं को लौटते हैं, और अंत में, टेम्पलेट्स जो प्रेजेंटेशन को संभालते हैं।

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

फ्रंटेंड बनाम बैकएंड सभी अर्थशास्त्र है। आप एक पूरी तरह से अलग आवेदन के लिए डेटा का प्रबंधन करने के लिए अपने अंतर्निहित व्यवस्थापक contrib पैकेज का उपयोग कर, एक Django ऐप संभावित रूप से "बैकएंड" बना सकते हैं। या, आप इसे केवल "फ्रंटएंड" के लिए उपयोग कर सकते हैं, बस इसके विचारों और टेम्पलेट्स का उपयोग कर सकते हैं लेकिन डेटा को प्रबंधित करने के लिए पूरी तरह से कुछ और उपयोग कर सकते हैं। आमतौर पर, यह दोनों के लिए प्रयोग किया जाता है। अंतर्निहित व्यवस्थापक ("बैकएंड"), आपके डेटा को प्रबंधित करने का एक आसान तरीका प्रदान करता है और आप विभिन्न तरीकों से उस डेटा को प्रस्तुत करने के लिए Django के भीतर ऐप्स बनाते हैं।हालांकि, अगर आप इतने इच्छुक थे, तो आप Django में अपना खुद का "बैकएंड" भी बना सकते हैं। आपको डिफ़ॉल्ट व्यवस्थापक का उपयोग करने के लिए मजबूर नहीं किया जाता है।

संबंधित मुद्दे