आपको क्या उपयोग करना बंद करना है myproduct.myproduct
? मोटे तौर पर ऐसा करने के लिए आपको क्या हासिल करना होगा:
django-admin.py startproject myproduct
cd myproduct
mkdir myproduct
touch myproduct/__init__.py
touch myproduct/models.py
touch myproduct/views.py
और इसी तरह। क्या यह मदद करेगा अगर मैंने कहा कि views.py
बुलाया नहीं जाना चाहिए views.py
? बशर्ते आप नाम दे सकते हैं, अजगर पथ पर, एक फ़ंक्शन (आमतौर पर पैकेज। package.views.function_name) यह संभाला जाएगा। इतना ही आसान। यह सब "प्रोजेक्ट" / "ऐप" सामान सिर्फ अजगर पैकेज है।
अब, आप इसे कैसे करना चाहिए? या बल्कि, मैं इसे कैसे कर सकता हूं? ठीक है, यदि आप पुन: प्रयोज्य कार्यक्षमता का एक महत्वपूर्ण टुकड़ा बनाते हैं, जैसे मार्कअप संपादक कहते हैं, कि जब आप एक "शीर्ष स्तर का ऐप" बनाते हैं widgets.py
, जिसमें शामिल हो सकता है fields.py
, context_processors.py
आदि - सभी चीजें जिन्हें आप आयात करना चाहते हैं।
इसी तरह, यदि आप एक ब्लॉग की तरह एक प्रारूप बना सकते हैं, जो इंस्टॉल में काफी सामान्य है, तो आप इसे अपने ही टेम्प्लेट, स्टैटिक कंटेंट फोल्डर आदि के साथ ऐप में रैप कर सकते हैं और इसका उपयोग करने के लिए एक django प्रोजेक्ट का एक उदाहरण कॉन्फ़िगर कर सकते हैं। एप्लिकेशन की सामग्री।
कोई कठिन और तेज़ नियम नहीं हैं जो कह रहे हैं कि आपको ऐसा करना चाहिए, लेकिन यह रूपरेखा के लक्ष्यों में से एक है। तथ्य यह है कि सब कुछ, शामिल टेम्पलेट्स, आपको कुछ सामान्य आधार से शामिल करने की अनुमति देता है इसका मतलब है कि आपके ब्लॉग को किसी अन्य सेटअप में आसानी से फिट होना चाहिए, बस अपने हिस्से की देखभाल करके।
हालाँकि, आपकी वास्तविक चिंता का समाधान करने के लिए, हाँ, कुछ भी नहीं कहता है कि आप शीर्ष स्तर के प्रोजेक्ट फ़ोल्डर के साथ काम नहीं कर सकते। यह वही है जो आप करते हैं और यदि आप वास्तव में चाहते हैं तो आप इसे कर सकते हैं। हालाँकि, मैं कई कारणों से नहीं:
- Django का डिफ़ॉल्ट सेटअप ऐसा नहीं करता है।
- अक्सर, मैं एक मुख्य ऐप बनाना चाहता हूं, इसलिए मैं एक बनाता हूं, जिसे आमतौर पर कहा जाता है
website
। हालाँकि, बाद की तारीख में मैं इस साइट के लिए मूल कार्यक्षमता विकसित करना चाहता हूँ। इसे हटाने योग्य बनाने के लिए (चाहे या कभी नहीं) मैं एक अलग निर्देशिका बनाने की प्रवृत्ति रखता हूं। इसका मतलब यह भी है कि मैं उस पैकेज को विन्यास से हटाकर और फ़ोल्डर को हटाकर कार्यक्षमता को छोड़ सकता हूं, बजाय एक जटिल के कि वैश्विक urls.py फ़ोल्डर से सही यूआरएल हटा दें।
- बहुत बार, यहां तक कि जब मैं कुछ स्वतंत्र करना चाहता हूं, तो इसे कहीं और जीने की आवश्यकता होती है, जबकि मैं इसे देखता हूं / इसे स्वतंत्र बनाता हूं। मूल रूप से उपरोक्त मामला है, लेकिन सामान के लिए मैं सामान्य बनाने का इरादा रखता हूं।
- मेरे शीर्ष स्तर के फ़ोल्डर में अक्सर कुछ अन्य चीजें शामिल होती हैं, जिनमें wsgi स्क्रिप्ट, sql स्क्रिप्ट आदि तक सीमित नहीं होती हैं।
- django के प्रबंधन एक्सटेंशन उपनिर्देशिकाओं पर निर्भर करते हैं। तो यह उचित रूप से संकुल नाम के लिए समझ में आता है।
संक्षेप में, एक सम्मेलन का कारण किसी भी अन्य सम्मेलन के समान है - यह तब मदद करता है जब यह आपकी परियोजना के साथ काम करने वाले अन्य लोगों के लिए आता है। अगर मुझे लगता है कि fields.py
मैं तुरंत django के क्षेत्र को उप-वर्ग करने के लिए इसमें कोड की अपेक्षा करता हूं, जबकि अगर मैं देखता inputtypes.py
हूं तो मैं इसे देखने के बिना इसका क्या मतलब है, इस पर इतना स्पष्ट नहीं हो सकता।