आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

Django की सबसे शक्तिशाली विशेषताओं में से एक कोड को गतिशील रूप से पुन: उपयोग करने की क्षमता है। टेम्प्लेट इनहेरिटेंस माता-पिता और चाइल्ड टेम्प्लेट के बीच कोड साझा करने की अनुमति देता है। यह प्रयास के दोहराव को बहुत कम करता है।

Django की अपनी टेम्प्लेट भाषा HTML के साथ मिश्रण करने के लिए डिज़ाइन की गई है। यदि आपने पहले HTML कोड के साथ काम किया है तो आपको Django के टेम्प्लेट के साथ काम करना आसान लगेगा। अन्य टेक्स्ट-आधारित टेम्पलेट भाषाओं जैसे कि स्मार्टी या जिंजा2 में समान सिंटैक्स है।

आइए Django प्रोजेक्ट बनाकर टेम्प्लेट इनहेरिटेंस के बारे में अधिक जानें।

Django टेम्पलेट क्या है?

Django में, एक टेम्पलेट एक पाठ फ़ाइल है जो किसी भी पाठ-आधारित प्रारूप, जैसे कि HTML, XML, या CSV को उत्पन्न कर सकती है।

Django टेम्पलेट टैग टेम्प्लेट में वेरिएबल और वैल्यू को बंद करने वाले लॉजिक को नियंत्रित करें। टैग प्रोग्राम लॉजिक को टेम्प्लेट प्रेजेंटेशन से अलग करने में मदद करते हैं। वे आपके टेम्प्लेट को साफ और व्यवस्थित रखने में भी मदद करते हैं।

instagram viewer

Django में कई बिल्ट-इन टैग हैं, जो दिखते हैं {% उपनाम %}. टैग कई तरह से मददगार होते हैं। वे आउटपुट में टेक्स्ट बना सकते हैं, लूप परफॉर्म कर सकते हैं और टेम्प्लेट में जानकारी लोड कर सकते हैं।

आप इस प्रोजेक्ट में टेम्प्लेट इनहेरिटेंस प्रदर्शित करने के लिए टैग का उपयोग करेंगे।

एक Django परियोजना बनाएँ

प्रारंभ करना, एक Django परियोजना बनाएँ. नाम से ऐप बनाएं खाके. एक बार जब आप ऐसा कर लेते हैं, तो आप टेम्पलेट इनहेरिटेंस प्रदर्शित करने के लिए ऐप, URL पथ और टेम्प्लेट के लिए एक दृश्य फ़ंक्शन बनाने के लिए तैयार होते हैं।

व्यू फंक्शन बनाएं

सबसे पहले, एक बनाएँ देखना फ़ंक्शन जो टेम्पलेट्स को प्रस्तुत करता है। इस मामले में, आप रेंडर करेंगे index.html टेम्पलेट। आयात करें प्रदान करना Django शॉर्टकट से विधि। फिर इंडेक्स नाम का एक व्यू फंक्शन बनाएं जो इंडेक्स टेम्प्लेट को रिटर्न और रेंडर करता है।

से django.शॉर्टकट आयात प्रदान करना
# यहां अपने विचार बनाएं।
डीईएफ़अनुक्रमणिका(अनुरोध):
रिटर्न रेंडर (अनुरोध,'index.html')

एक URL पथ बनाएँ

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

से django.urls आयात पथ
से. आयात दृश्य
से django.conf आयात समायोजन
से django.conf.urls.static आयातस्थिर
urlpatterns=[
पथ('',views.index, नाम ='अनुक्रमणिका'),
]
अगरसमायोजनडिबग:
urlpatterns+=स्थिर(समायोजन। MEDIA_URL, document_root=सेटिंग्स. मीडिया_रूट)

टेम्प्लेट बनाएं

अब जब आपके पास है देखना और यूआरएल पथ, टेम्पलेट बनाएँ। टेम्प्लेट इनहेरिटेंस प्रदर्शित करने के लिए, एक बनाएँ आधार.html मूल टेम्पलेट के रूप में। आधार.html फ़ाइल में वे सामान्य तत्व होंगे जिनके साथ आप साझा करना चाहते हैं index.html,चाइल्ड टेम्प्लेट.

{% लोड बूटस्ट्रैप5%}
{% भार स्थिर %}
<!DOCTYPE html>
<एचटीएमएल लैंग ="एन">
<सिर>
<मेटा चारसेट ="यूटीएफ-8">
<मेटा http-equiv="एक्स-UA- संगत" सामग्री ="आईई = किनारा">
<मेटा नाम ="व्यूपोर्ट" सामग्री ="चौड़ाई = उपकरण-चौड़ाई, प्रारंभिक-पैमाना = 1.0">
<!-- शीर्षक -->
{% अगर शीर्षक%}
<शीर्षक> विरासत में मिले टेम्पलेट {{शीर्षक}}</title>
{% अन्य %}
<शीर्षक> इनहेरिटेड टेम्प्लेट </title>
{% अगर अंत %}
{% ब्लॉक शैलियाँ %}
{% बूटस्ट्रैप_सीएसएस%}
<लिंक रिले ="शैली पत्रक" href="{% स्थिर 'सीएसएस/शैली.सीएसएस' %}">
{% एंडब्लॉक%}
</head>
<शरीर>
{% शामिल करना 'नेवबार.html' %}
{% ब्लॉक सामग्री%} {% एंडब्लॉक%}
<!-- बूटस्ट्रैप लिंक्स -->
<स्क्रिप्ट src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" अखंडता ="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" क्रॉसोरिजिन ="अनाम"></script>
</body>
</html>

सबसे पहले, बूटस्ट्रैप और स्थिर निर्भरताओं को लोड करें आधार.html टेम्पलेट। तुम कर सकते हो अपने Django प्रोजेक्ट के साथ बूटस्ट्रैप फ्रेमवर्क का उपयोग करें HTML पृष्ठों को स्टाइल करने के लिए। शीर्ष पर लोड की गई स्थैतिक निर्भरता स्थिर फ़ोल्डर में शामिल संपत्तियों को लोड करेगी।

Django टेम्प्लेट आपको सामग्री प्रदर्शित करने के लिए जिम्मेदार तर्क के बिट्स पास करने की अनुमति देता है। टेम्प्लेट टैग में "से घिरा हुआ टेक्स्ट होता है"{%" और "%}" पात्र। यदि नहीं तो स्टेटमेंट व्यू फंक्शन में स्थितियों की जांच करता है। यदि स्थिति सही है तो यह पहले ब्लॉक में सामग्री को प्रस्तुत करती है; अगर गलत है, तो यह दूसरे में सामग्री प्रस्तुत करेगा।

आधार.html फ़ाइल की सामग्री भी प्रस्तुत करेगा नेवबार.html ठीक वहीं जहां आप टेम्प्लेट टैग लगाते हैं। इसका मतलब है कि जब भी आप विस्तार करते हैं आधार.html, नेवबार.html भी विरासत में मिला है। का विस्तार करने वाला कोई भी टेम्पलेट आधार.html a के साथ कोई भी तत्व इनहेरिट करेगा {% शामिल करना %} उपनाम।

से घिरा कोई भी पाठ {{}} एक टेम्पलेट चर है। टेम्प्लेट चर गतिशील डेटा हैं जो दृश्य कार्यों द्वारा प्रदान किए जाते हैं। Django ब्लॉक टैग का भी उपयोग करता है जो एक खुले टैग का उपयोग करता है, जैसे {% ब्लॉक सामग्री%}, और एक समापन टैग, जैसे {% एंडब्लॉक%}.

ब्लॉक टैग चाइल्ड टेम्प्लेट को पैरेंट टेम्प्लेट की सामग्री को ओवरराइड करने की अनुमति देते हैं। इस मामले में, index.html ब्लॉक टैग से घिरे क्षेत्र में इसकी सामग्री को बदल सकता है। यह दूसरे के काम में दखलअंदाजी नहीं करेगा आधार.html अवयव।

आइए तर्क को लागू करें index.html

{% विस्तार करता है 'आधार.html' %}
{% ब्लॉक सामग्री%}
<डिव क्लास ="कंटेनर टेक्स्ट-सेंटर" शैली ="रंग सफेद">
<एच 1>मैं सूचकांक टेम्पलेट हूँ</h1>
<पी>मैंने बूटस्ट्रैप और नेवबार को base.html से इनहेरिट किया है</पी>
</div>
{% एंडब्लॉक%}

में index.html टेम्पलेट, का प्रयोग करें {% बढ़ाना %} टैग के घटकों का विस्तार करने के लिए आधार.html. ब्लॉक टैग के अंदर {% ब्लॉक सामग्री%}, अपना पूरा कोड लिखें।

में index.html टेम्प्लेट, आपके पास एक H1 और एक पैराग्राफ तत्व है। आप divs के अंदर टेम्पलेट टैग का उपयोग वेरिएबल्स से कॉल करने के लिए कर सकते हैं देखना समारोह।

ब्राउज़र में टेस्ट टेम्प्लेट इनहेरिटेंस

अब आप सर्वर चला सकते हैं। एक बार जब आप ऐसा कर लेते हैं, तो ब्राउज़र में यह देखने के लिए जांचें कि क्या index.html फ़ाइल के तत्वों को विरासत में मिला आधार.html. इसमें बूटस्ट्रैप लिंक और शामिल हैं नेवबार.html टेम्पलेट।

index.html फ़ाइल को बेस टेम्प्लेट से नेवबार और बूटस्ट्रैप शैलियों को इनहेरिट करना चाहिए। यदि ऐसा है, तो आपने टेम्प्लेट इनहेरिटेंस का सही उपयोग किया है। इसके बिना, आपको नेविगेशन बार और बूटस्ट्रैप लिंक को वहां जोड़ना होगा जहां आपको उनकी आवश्यकता थी।

साथ ही, आपके द्वारा इसमें किए गए कोई भी परिवर्तन आधार.html यह उन सभी टेम्पलेट्स पर प्रतिबिंबित करेगा जिन पर इसका विस्तार होता है। त्रुटि से निपटने में यह सिद्धांत महत्वपूर्ण है। आप आसानी से बग वाले टेम्प्लेट की पहचान कर सकते हैं।

टेम्प्लेट इनहेरिटेंस उन कई तरीकों में से एक है, जो Django डोंट रिपीट योरसेल्फ (DRY) सिद्धांत को लागू करता है। यह आपके विकास को बहुत आसान और सरल बना देगा।

आपको Django टेम्प्लेट इनहेरिटेंस का उपयोग क्यों करना चाहिए

Django का टेम्प्लेट इनहेरिटेंस इसकी सबसे जटिल विशेषताओं में से एक है। इसे समझने में कुछ समय लग सकता है, लेकिन एक बार समझने के बाद, यह विकास के बहुत से प्रयासों को बचाता है।

टेम्प्लेट इनहेरिटेंस आपको माता-पिता और चाइल्ड टेम्प्लेट के बीच कोड साझा करने की अनुमति देता है। यह सुनिश्चित करता है कि आप अपने टेम्प्लेट में दोहराए जाने वाले कोड नहीं लिखते हैं।

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

Django टेम्प्लेट सिस्टम सीखकर, आप स्वच्छ और शक्तिशाली कोड लिखने का आनंद ले सकते हैं।