2008-12-12 19 views
8

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

उत्तर

16

"डेटा/वास्तु मॉडल ताकि हम पहले दृष्टिकोण हम एक रूपरेखा हम का इस्तेमाल किया कभी नहीं किया है का उपयोग कर का उपयोग करना चाहिए का एक बेहतर विचार प्राप्त कर सकते हैं"

Django आप पर सर्वोत्तम प्रथाओं लगाता है। आपके पास बहुत सारे विकल्प नहीं हैं और बहुत सारी गलतियों को नहीं कर सकते हैं।

MVC इस प्रकार है (एक महान आकांक्षा जबकि) लागू किया गया है:

  • डाटा Django ORM मॉडल का उपयोग कर "models.py" फ़ाइलों में परिभाषित किया गया है।
  • urls.py फ़ाइल फ़ंक्शन देखने के लिए URL URL। अपने यूआरएल की बुद्धिमानी से उठाओ।
  • देखें फ़ंक्शन सभी प्रसंस्करण करता है, मॉडलों में मॉडल और विधियों का उपयोग
  • प्रस्तुति (HTML टेम्पलेट्स के माध्यम से) दृश्य फ़ंक्शन द्वारा लागू किया गया। प्रस्तुति में अनिवार्य रूप से कोई प्रसंस्करण नहीं किया जा सकता है, केवल हल्के पुनरावृत्ति और निर्णय लेने

मॉडल आपके लिए परिभाषित किया गया है। बस Django स्वाभाविक रूप से क्या करता है और आप खुश रहेंगे।

वास्तुशिल्प रूप से, आपके पास आमतौर पर इस तरह का ढेर होता है।

  • अपाचे दो चीजें करता है।

    • स्थैतिक सामग्री (mod_python, mod_wsgi या mod_fastcgi के माध्यम से) Django के लिए सीधे और तुरंत
    • हाथ गतिशील यूआरएल कार्य करता है। Django एप्लिकेशन नक्शा यूआरएल कार्य (जो डेटाबेस (ORM/मॉडल के माध्यम से करने के लिए का उपयोग) को देखने और टेम्पलेट्स के माध्यम से प्रदर्शित करने के लिए।
  • Django दृश्य कार्यों द्वारा इस्तेमाल किया डेटाबेस।

वास्तुकला अच्छी तरह से परिभाषित किया गया है । आप के लिए बस क्या Django स्वाभाविक रूप से करता है पर कायम है और आप खुशी होगी

Django documentation पढ़ने के लिए स्वतंत्र महसूस यह उत्कृष्ट है,।।। शायद सबसे अच्छा है

+0

आप प्रदर्शन या स्मृति के उपयोग को लेकर चिंतित हैं, यह अक्सर है बेहतर एक अलग हल्के वेबसर्वर (जैसे Nginx के रूप में) स्थैतिक सामग्री की सेवा के बजाय का उपयोग कर अपाचे के लिए है करने के लिए: इस प्रयास करने से पहले निम्नलिखित पढ़ लें दोनों के लिए (हालांकि आप समान प्रभाव प्राप्त कर सकते हैं यदि आप डिमन मोड और अपाचे वर्कर एमपीएम में mod_wsgi का उपयोग करते हैं)। –

+0

@ करल मेयर: या स्थिर सामग्री की सेवा के लिए lighttpd। –

5

पहले, फोर्ज सभी एमवीसी मंत्र टी। यह (के रूप में मूल रूप में परिभाषित) एक अच्छा स्तरित संरचना के लिए महत्वपूर्ण है, लेकिन MVC नहीं है, यह एक मॉड्यूलर संरचना है, जहां प्रत्येक जीयूआई मॉड्यूल इन पेड़ submodules में विभाजित किया गया है था। यहां वेब पर उपयोग करने के लिए कुछ भी नहीं है।

वेब विकास में, यह वास्तव में एक स्तरित संरचना का भुगतान करता है, जहां सबसे महत्वपूर्ण परत भंडारण/मॉडलिंग एक है, जिसे मॉडल परत कहा जाता है। उस पर, आपको कुछ अन्य परतों की आवश्यकता है लेकिन वे वास्तव में जीयूआई दुनिया में विचारों और नियंत्रकों की तरह कुछ भी नहीं हैं।जाहिर है models.py,:

Django परतों मोटे तौर पर कर रहे हैं:

  • भंडारण/मॉडलिंग। वहां 'अधिकांश' अवधारणाओं को रखने की कोशिश करें। सभी रिश्तों, सभी परिचालनों को यहां लागू किया जाना चाहिए।
  • प्रेषण: ज्यादातर urls.py में। यहां आप अपनी यूआरएल योजना को कोड पथ में बदल देते हैं। इसे एक बड़े स्विच() कथन की तरह सोचें। पठनीय यूआरएल रखने के लिए कड़ी मेहनत करें, जो उपयोगकर्ता के इरादों में मैप करें। यह नई कार्यक्षमता, या एक ही चीजों को करने के नए तरीकों को जोड़ने में बहुत मदद करेगा (जैसे बाद में AJAX UI)।
  • एकत्रण: अधिकांशतः दृश्य कार्य, आपके दोनों और प्रीबिल्ट जेनेरिक विचार। यहां आप उपयोगकर्ता अनुरोध को पूरा करने के लिए बस मॉडल से सभी इकट्ठा करते हैं। आश्चर्यजनक रूप से कई मामलों में, इसे सिर्फ एक मॉडल उदाहरण चुनना है, और बाकी सब कुछ रिश्तों से पुनर्प्राप्त किया जा सकता है। इन यूआरएल के लिए, एक सामान्य दृश्य पर्याप्त है।
  • प्रस्तुति: टेम्पलेट्स। यदि दृश्य आपको आवश्यक डेटा देता है, तो इसे वेबपृष्ठ में बदलने के लिए काफी आसान है। यह यहां है जहां आप धन्यवाद देंगे कि किसी भी उदाहरण से मॉडल वर्गों के पास किसी भी प्रकार का प्रासंगिक डेटा प्राप्त करने के लिए अच्छे एक्सेसर्स हैं।
+0

+1। बिल्कुल सही। –

0

Django fundementals को समझने के लिए और Django MVC पर ले, तो निम्न देखें: के साथ गंदे अपने हाथ हो रही ... "करने के लिए http://www.djangobook.com/

एक प्रारंभिक बिंदु के रूप में ... कुछ तुलनीय खोजने की कोशिश डेटा/वास्तुशिल्प मॉडल "

मॉडल.py फ़ाइल, प्राप्त करने के लिए एक डेटाबेस को रिवर्स इंजीनियर करने के लिए यहां एक त्वरित और गंदा तरीका है, जिसे आप देख सकते हैं कि django इसे कैसे संभालेगा।

1.) एक एर आरेख प्राप्त करें जो आपके लक्ष्य से बारीकी से मेल खाता है। इस http://www.databaseanswers.org/data_models/product_catalogs/index.htm

2. जैसे उदाहरण के कुछ) के लिए एर आरेख से एक एसक्यूएल स्क्रिप्ट बनाने और डाटाबेस बनाने, मैं Postgre सुझाव है, जैसा कि कुछ MySQL तालिका प्रकार कुंजी बाधाओं forgien है नहीं होगा, लेकिन एक चुटकी MySQL में या SQLITE

3.) उस डेटाबेस का उपयोग करने के लिए django ऐप बनाएं और कॉन्फ़िगर करें। तब चलाएँ: अजगर manage.py

inspectdb यह कम से कम आप एक models.py फ़ाइल आप यह कैसे Django प्रयास मॉडल करने के लिए देखने के लिए पढ़ सकते हैं जो दे देंगे।

ध्यान दें कि निरीक्षण आदेश विरासत डेटाबेस के साथ काम कर जब Django में विकसित करने के लिए एक शॉर्टकट के रूप में भेजा जाता है, और इस तरह के रूप सही नहीं है। http://docs.djangoproject.com/en/dev/ref/django-admin/#ref-django-admin

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