A Django egyik legerősebb funkciója a kód dinamikus újrafelhasználásának képessége. A sablon öröklése lehetővé teszi a kód megosztását a szülő- és a gyermeksablonok között. Nagymértékben csökkenti a párhuzamos erőfeszítéseket.
A Django sablonnyelvét úgy tervezték, hogy keveredjen a HTML-lel. Könnyen fog dolgozni a Django sablonjaival, ha korábban már dolgozott HTML-kóddal. Más szövegalapú sablonnyelvek, például a Smarty vagy a Jinja2 hasonló szintaxissal rendelkeznek.
Tanuljunk meg többet a sablon öröklődéséről egy Django projekt felépítésével.
Mi az a Django sablon?
A Django-ban a sablon egy szövegfájl, amely bármilyen szövegalapú formátumot, például HTML-t, XML-t vagy CSV-t képes generálni.
Django sablon címkék szabályozza a logikai befoglaló változókat és értékeket a sablonban. A címkék segítenek elválasztani a program logikáját a sablon megjelenítésétől. Segítenek a sablonok tisztán és rendezetten tartásában is.
A Django számos beépített címkével rendelkezik, amelyek úgy néznek ki {% tag %}. A címkék sok szempontból hasznosak. Szöveget hozhatnak létre a kimenetben, ciklusokat hajthatnak végre, és információkat tölthetnek be a sablonba.
Ebben a projektben címkéket fog használni a sablon öröklődésének bemutatására.
Hozzon létre egy Django projektet
A kezdéshez hozzon létre egy Django projektet. Hozzon létre egy nevű alkalmazást sablonokat. Ha ezt megtette, készen áll egy nézetfunkció létrehozására az alkalmazáshoz, egy URL-útvonalat és sablonokat, amelyek bemutatják a sablon öröklődését.
Hozzon létre egy Nézet funkciót
Először hozzon létre a Kilátás függvény, amely megjeleníti a sablonokat. Ebben az esetben a index.html sablon. Importálja a Vakol módszer a Django parancsikonokból. Ezután hozzon létre egy index nevű nézetfüggvényt, amely visszaadja és megjeleníti az indexsablont.
tól től django.parancsikonok import Vakol
# Itt hozhatja létre nézeteit.
defindex(kérés):
render visszaküldése (kérés,'index.html')
Hozzon létre egy URL elérési utat
Ezután hozzon létre a URL elérési út a nézet funkcióhoz a sablonok megjelenítéséhez. Importálja a pálya függvény a django.urls és a Kilátás funkciótól views.py fájlt. Ezután importálja beállítások és statikus a sablonokban található képek és média megjelenítéséhez.
tól től django.urls import pálya
tól től. import nézetek
tól től django.conf import beállítások
tól től django.conf.urls.static importstatikus
urlpatterns=[
pálya('',views.index, name='index'),
]
habeállítások.DEBUG:
urlpatterns+=statikus(beállítások. MEDIA_URL, document_root=beállítások. MEDIA_ROOT)
Sablonok létrehozása
Most, hogy megvan a Kilátás és URL elérési út, hozza létre a sablonokat. A sablon öröklődésének demonstrálásához hozzon létre a base.html szülősablonként. A base.html fájl általános elemekkel rendelkezik, amelyeket meg kíván osztani index.html, a gyermek sablon.
{% load bootstrap5 %}
{% Betöltés statikus %}
<!DOCTYPE html>
<html lang="hu">
<fej>
<meta karakterkészlet="UTF-8">
<meta http-equiv="X-UA-kompatibilis" tartalom="IE=él">
<meta név="nézetablak" tartalom="szélesség=eszköz-szélesség, kezdeti lépték=1,0">
<!-- címek -->
{% if title %}
<cím> Öröklött sablonok {{title}}</title>
{% más %}
<cím> Öröklött sablonok </title>
{% endif %}
{% blokkstílusok %}
{% bootstrap_css %}
<link rel="stíluslap" href="{% statikus 'css/style.css' %}">
{% endblock %}
</head>
<test>
{% tartalmazza 'navbar.html' %}
{% blokktartalom %} {% endblock %}
<!-- Bootstrap linkek -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integritás="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="névtelen"></script>
</body>
</html>
Először töltse be a Bootstrap-et és a statikus függőségeket a base.html sablon. tudsz használja a Bootstrap keretrendszert a Django projektjéhez a HTML oldalak stílusához. A tetején betöltött statikus függőség betölti a statikus mappában található eszközöket.
A Django sablonok lehetővé teszik a tartalom megjelenítéséért felelős logikai bitek átadását. A sabloncímkék "" jellel körülvett szövegből állnak{%" és "%}" karakterek. A ha más utasítás ellenőrzi a feltételeket a nézet függvényben. Ha a feltétel igaz, akkor az első blokk tartalmát jeleníti meg; ha hamis, akkor a tartalmat a másodikban jeleníti meg.
A base.html fájl is megjeleníti a tartalmát navbar.html ott, ahol a sabloncímkéket helyezi el. Ez azt jelenti, hogy amikor meghosszabbítja a base.html, navbar.html is öröklődik. Bármely sablon kiterjeszti a base.html örököl minden elemet an {% tartalmazza %} címke.
Bármilyen szöveg körül {{}} egy sablonváltozó. A sablonváltozók a nézetfüggvények által biztosított dinamikus adatok. A Django olyan blokkcímkéket is használ, amelyek nyitott címkét használnak, mint pl {% blokktartalom %}, és egy zárócímke, mint például {% endblock %}.
A blokkcímkék lehetővé teszik, hogy az alárendelt sablonok felülírják a szülősablonok tartalmát. Ebben az esetben a index.html tartalmát a blokkcímkékkel zárt területen helyettesítheti. Nem zavarja a másikat base.html alkatrészek.
Alkalmazzuk a logikát a index.html
{% kiterjeszti 'base.html' %}
{% blokktartalom %}
<div class="konténer szövegközpont" stílus="fehér szín">
<h1>Én vagyok az indexsablon</h1>
<p>A Bootstrap-et és a navigációs sávot a base.html-ről örököltem</p>
</div>
{% endblock %}
Ban,-ben index.html sablon, használja a {% kiterjeszt %} tag a komponensek kiterjesztéséhez base.html. A blokkcímkék belsejében {% blokktartalom %}, írja be az összes kódot.
Ban,-ben index.html sablon, akkor van egy H1 és egy bekezdéselem. Használhatja a div-ben található sabloncímkéket a változók meghívásához a Kilátás funkció.
Tesztelje a sablon öröklődését a böngészőben
Most már futtathatja a szervert. Ha ezt megtette, ellenőrizze a böngészőben, hogy a index.html fájl elemeit örökölte base.html. Ez magában foglalja a Bootstrap hivatkozásokat és a navbar.html sablon.
A index.html fájlnak örökölnie kell a navigációs sávot és a Bootstrap stílust az alapsablontól. Ha igen, akkor helyesen használta a sablon öröklődését. Enélkül a navigációs sávot és a Bootstrap hivatkozásokat kellett volna hozzáadnia ott, ahol szüksége volt rájuk.
Valamint a base.html tükröződik az összes sablonon, amelyre kiterjed. Ez az elv fontos a hibakezelésben. Könnyen azonosíthatja a hibákat tartalmazó sablonokat.
A sablon öröklése egyike annak a sok módnak, ahogyan a Django megvalósítja a Ne ismételje meg magát (DRY) elvet. Sokkal könnyebbé és egyszerűbbé teszi a fejlődését.
Miért érdemes a Django sablon öröklődését használni?
A Django sablon öröklődése az egyik legösszetettebb funkciója. Eltarthat egy ideig, amíg megérti, de ha ezt megtette, sok fejlesztési erőfeszítést takarít meg.
A sablon öröklése lehetővé teszi a kód megosztását a szülő- és a gyermeksablonok között. Ez biztosítja, hogy ne írjon ismétlődő kódot a sablonokba.
A sablon öröklése fontos a nagy Django projektekben. Ilyen esetekben sok alkalmazást és sok sablont kell tervezni. A szülősablonok sok szabályozást biztosítanak az alkalmazás többi összetevője felett.
A Django sablonrendszer megtanulásával élvezheti a tiszta és hatékony kód írását.