فهم وراثة النموذج في Django

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

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





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





اجعل فيديو اليوم

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





ما هو قالب Django؟

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

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



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

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





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

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

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

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





from django.shortcuts import render 
# Create your views here.
def index(request):
return render (request,'index.html')

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

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

نقل تطبيقات android إلى بطاقة sd
from django.urls import path 
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns=[
path('',views.index,name='index'),
]
if settings.DEBUG:
urlpatterns+=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

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

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

{% load bootstrap5 %} 
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- titles -->
{% if title %}
<title> Inherited Templates {{title}}</title>
{% else %}
<title> Inherited Templates </title>
{% endif %}
{% block styles %}
{% bootstrap_css %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
{% endblock %}
</head>
<body>
{% include 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Bootstrap links -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"> </script>
</body>
</html>

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

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

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

كيفية إزالة الخلفية في Illustrator

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

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

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

{% extends 'base.html' %} 
{% block content %}
<div class="container text-center" style="color: white">
<h1>I Am The Index Template</h1>
<p>I inherited Bootstrap and the navbar from base.html</p>
</div>
{% endblock %}

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

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

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

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

  index.html مع navbar من base.html

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

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

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

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

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

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

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

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