القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة. اقرأ أكثر.

واحدة من أقوى ميزات Django هي قدرته على إعادة استخدام الكود ديناميكيًا. يسمح وراثة القوالب بمشاركة التعليمات البرمجية بين القوالب الرئيسية والفرعية. يقلل بشكل كبير من ازدواجية الجهود.

تمتلك Django لغة نموذجية مصممة لتندمج مع HTML. ستجد أنه من السهل العمل مع قوالب Django إذا كنت قد عملت باستخدام كود HTML من قبل. لغات القوالب النصية الأخرى مثل Smarty أو Jinja2 لها نفس البنية.

دعنا نتعلم المزيد عن وراثة القوالب من خلال بناء مشروع Django.

ما هو قالب Django؟

في Django ، القالب هو ملف نصي يمكنه إنشاء أي تنسيق نصي ، مثل HTML أو XML أو CSV.

علامات قالب Django التحكم في منطق تضمين المتغيرات والقيم في القالب. تساعد العلامات في فصل منطق البرنامج عن عرض القالب. كما أنها تساعد في الحفاظ على نظافة القوالب الخاصة بك وتنظيمها.

يحتوي Django على العديد من العلامات المضمنة ، والتي تبدو مثل {٪ بطاقة شعار ٪}. العلامات مفيدة من نواح كثيرة. يمكنهم إنشاء نص في الإخراج ، وتنفيذ الحلقات ، وتحميل المعلومات في القالب.

instagram viewer

ستستخدم العلامات في هذا المشروع لإثبات وراثة القالب.

قم بإنشاء مشروع Django

للبدء، إنشاء مشروع Django. أنشئ تطبيقًا باسم القوالب. بمجرد القيام بذلك ، تكون جاهزًا لإنشاء وظيفة عرض للتطبيق ومسار URL وقوالب لإثبات توريث القالب.

قم بإنشاء وظيفة عرض

أولاً ، قم بإنشاء ملف منظر وظيفة تجعل القوالب. في هذه الحالة ، ستقدم ملف index.html نموذج. قم باستيراد ملف يجعل الطريقة من اختصارات Django. ثم قم بإنشاء دالة عرض تسمى index تقوم بإرجاع قالب الفهرس وعرضه.

من django.shortcuts يستورد يجعل
# قم بإنشاء وجهات نظرك هنا.
defفِهرِس(طلب):
عودة تقديم (طلب ،'index.html')

قم بإنشاء مسار URL

بعد ذلك ، قم بإنشاء ملف مسار URL لوظيفة العرض لعرض القوالب. قم باستيراد ملف طريق وظيفة من django.urls و منظر وظيفة من views.py ملف. ثم استيراد إعدادات و ثابتة لعرض أي صور ووسائط قد تكون لديك في القوالب.

من django.urls يستورد طريق
من. يستورد الآراء
من django.conf يستورد إعدادات
من django.conf.urls.static يستوردثابتة
أنماط عنوان url = [
طريق(''و views.index الاسم ='فِهرِس'),
]
لوإعدادات.DEBUG:
أنماط عنوان url + =ثابتة(إعدادات. MEDIA_URL ، document_root = إعدادات. MEDIA_ROOT)

إنشاء القوالب

الآن بعد أن أصبح لديك ملف منظر و URL مسار إنشاء القوالب. لإثبات وراثة القالب ، قم بإنشاء ملف base.html كقالب أصلي. ال base.html سيحتوي الملف على عناصر عامة ترغب في مشاركتها index.html، القالب الفرعي.

{٪ تحميل التمهيد 5٪}
{٪ حمولة ثابتة %}
<! DOCTYPE html>
<أتش تي أم أل لانج ="ar">
<رأس>
<meta charset ="UTF-8">
<meta http-equiv ="متوافق مع X-UA" المحتوى ="IE = حافة">
<اسم التعريف ="منفذ العرض" المحتوى ="العرض = عرض الجهاز ، المقياس الأولي = 1.0">
<! - العناوين ->
{٪ if title٪}
<عنوان> القوالب الموروثة {{title}}</title>
{% آخر %}
<عنوان> القوالب الموروثة </title>
{% إنهاء إذا %}
{٪ كتلة الأنماط٪}
{٪ bootstrap_css٪}
<ارتباط rel ="ورقة الأنماط" href ="{٪ ثابتة 'css / style.css' %}">
{٪ endblock٪}
</head>
<جسم>
{٪ يشمل 'navbar.html' %}
{٪ block content٪} {٪ endblock٪}
<- روابط Bootstrap ->
<النصي src ="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" النزاهة ="sha384-MrcW6ZMFYlzcLA8Nl + NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP + JcXn / tWtIaxVXM" crossorigin ="مجهول"></script>
</body>
</html>

أولاً ، قم بتحميل Bootstrap والتبعيات الثابتة على ملف base.html نموذج. أنت تستطيع استخدم إطار عمل Bootstrap مع مشروع Django الخاص بك لتصميم صفحات HTML. ستؤدي التبعية الثابتة التي تم تحميلها في الأعلى إلى تحميل الأصول المضمنة في المجلد الثابت.

تسمح لك قوالب Django بتمرير أجزاء من المنطق المسؤولة عن عرض المحتوى. تتكون علامات النموذج من نص محاط بـ "{%" و "%}" الشخصيات. ال إذا كان غير ذلك يتحقق البيان من الشروط في وظيفة العرض. إذا كان الشرط صحيحًا ، فإنه يعرض المحتوى في الكتلة الأولى ؛ إذا كان خطأ ، فسيتم عرض المحتوى في الثانية.

ال base.html سيعرض الملف أيضًا محتويات navbar.html في المكان الصحيح الذي تضع فيه علامات النموذج. هذا يعني أنه كلما قمت بتمديد ملف base.html, navbar.html هو أيضا موروث. أي قالب يمتد إلى base.html سيرث أي عنصر بامتداد {٪ يشمل ٪} بطاقة شعار.

أي نص محاط بـ {{}} هو متغير قالب. متغيرات القالب هي بيانات ديناميكية توفرها وظائف العرض. يستخدم Django أيضًا علامات الحظر التي تستخدم علامة مفتوحة ، مثل {٪ حظر المحتوى٪}وعلامة إغلاق ، مثل {٪ endblock٪}.

تسمح علامات الحظر للقوالب الفرعية بتجاوز محتويات القوالب الأصلية. في هذه الحالة ، فإن ملف index.html يمكن أن تحل محل محتوياته في المنطقة المحاطة بعلامات الحظر. لن يتدخل مع الآخر base.html عناصر.

دعنا نطبق المنطق على index.html

يمتد {٪ 'base.html' %}
{٪ حظر المحتوى٪}
<فئة div ="مركز نص الحاوية" النمط ="اللون الابيض">
<h1>أنا قالب الفهرس</h1>
<ص>لقد ورثت Bootstrap و navbar من base.html</ ص>
</div>
{٪ endblock٪}

في ال index.html النموذج ، استخدم ملف {٪ يمتد ٪} لتوسيع مكونات base.html. داخل علامات الحظر {٪ حظر المحتوى٪}، اكتب كل ما تبذلونه من التعليمات البرمجية.

في ال index.html نموذج ، لديك H1 وعنصر فقرة. يمكنك استخدام علامات القالب داخل divs لاستدعاء المتغيرات من منظر وظيفة.

اختبار قالب الوراثة في المستعرض

يمكنك الآن تشغيل الخادم. بمجرد القيام بذلك ، تحقق من المتصفح لمعرفة ما إذا كان ملف index.html ملف ورث عناصر base.html. يتضمن روابط Bootstrap وملفات navbar.html نموذج.

ال index.html يجب أن يرث الملف أنماط navbar و Bootstrap من القالب الأساسي. إذا كان الأمر كذلك ، فقد استخدمت وراثة النموذج بشكل صحيح. بدونها ، كان عليك إضافة شريط التنقل وروابط Bootstrap حيثما كنت في حاجة إليها.

وأيضًا ، فإن أي تغييرات تجريها على ملف base.html ستنعكس عبر جميع القوالب التي يمتد إليها. هذا المبدأ مهم في معالجة الأخطاء. يمكنك بسهولة تحديد القوالب التي بها أخطاء.

وراثة القوالب هي إحدى الطرق العديدة لتطبيق Django لمبدأ لا تكرر نفسك (DRY). سيجعل تطويرك أسهل بكثير وأبسط.

لماذا يجب عليك استخدام وراثة قالب Django

وراثة قالب Django هي واحدة من أكثر ميزاته تعقيدًا. قد يستغرق الأمر بعض الوقت لفهمه ، ولكن بمجرد القيام بذلك ، فإنه يوفر الكثير من جهود التطوير.

تسمح لك وراثة القوالب بمشاركة التعليمات البرمجية بين القوالب الرئيسية والفرعية. يضمن ذلك عدم كتابة تعليمات برمجية متكررة في القوالب الخاصة بك.

يعتبر توريث القوالب مهمًا في مشاريع Django الكبيرة. في مثل هذه الحالات ، هناك العديد من التطبيقات والعديد من القوالب للتصميم. تمنحك القوالب الأصلية قدرًا كبيرًا من التحكم في المكونات الأخرى للتطبيق.

من خلال تعلم نظام قالب Django ، يمكنك الاستمتاع بكتابة كود واضح وقوي.