Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Jednou z najvýkonnejších funkcií Django je jeho schopnosť dynamického opätovného použitia kódu. Dedičnosť šablón umožňuje zdieľanie kódu medzi nadradenými a podradenými šablónami. Výrazne znižuje duplicitu úsilia.

Django má svoj šablónový jazyk navrhnutý tak, aby sa miešal s HTML. Ak ste už predtým pracovali s HTML kódom, práca so šablónami Django bude jednoduchá. Ostatné textové šablónové jazyky ako Smarty alebo Jinja2 majú podobnú syntax.

Dozvieme sa viac o dedičnosti šablón vytvorením projektu Django.

Čo je to šablóna Django?

V Django je šablóna textový súbor, ktorý dokáže generovať akýkoľvek textový formát, ako je HTML, XML alebo CSV.

Značky šablóny Django ovládať logiku uzatvárajúcu premenné a hodnoty v šablóne. Značky pomáhajú oddeliť logiku programu od prezentácie šablóny. Pomáhajú tiež udržiavať vaše šablóny čisté a usporiadané.

Django má veľa vstavaných značiek, ktoré vyzerajú ako

instagram viewer
{% tag %}. Tagy sú užitočné v mnohých smeroch. Môžu vytvárať text na výstupe, vykonávať slučky a načítať informácie do šablóny.

V tomto projekte budete používať značky na demonštráciu dedičnosti šablóny.

Vytvorte projekt Django

Začať, vytvoriť projekt Django. Vytvorte aplikáciu s názvom šablóny. Keď to urobíte, ste pripravení vytvoriť funkciu zobrazenia pre aplikáciu, cestu URL a šablóny na demonštráciu dedenia šablón.

Vytvorte funkciu zobrazenia

Najprv vytvorte a vyhliadka funkcia, ktorá vykresľuje šablóny. V tomto prípade vykreslíte index.html šablóna. Importovať vykresliť metóda zo skratiek Django. Potom vytvorte funkciu zobrazenia s názvom index, ktorá vráti a vykreslí šablónu indexu.

od django.skratky importovať vykresliť
# Tu si vytvorte svoje názory.
defindex(žiadosť):
vrátiť render (žiadosť,'index.html')

Vytvorte cestu URL

Ďalej vytvorte a cesta URL pre funkciu zobrazenia na zobrazenie šablón. Importovať cesta funkcie z django.urls a vyhliadka funkcia od views.py súbor. Potom importujte nastavenie a statické na vykreslenie akýchkoľvek obrázkov a médií, ktoré môžete mať v šablónach.

od django.urls importovať cesta
od. importovať názory
od django.conf importovať nastavenie
od django.conf.urls.static importovaťstatické
urlpatterns=[
cesta ('',views.index, name='index'),
]
aknastavenie.DEBUG:
vzory adries URL+=statické(nastavenie. MEDIA_URL, document_root=nastavenia. MEDIA_ROOT)

Vytvorte šablóny

Teraz, keď máte vyhliadka a URL cestu, vytvorte šablóny. Ak chcete demonštrovať dedičnosť šablóny, vytvorte a base.html ako nadradená šablóna. The base.html súbor bude obsahovať všeobecné prvky, s ktorými chcete zdieľať index.html,podradená šablóna.

{% load bootstrap5 %}
{% naložiť statické %}
<!DOCTYPE html>
<html jazyk="en">
<hlavu>
<meta znaková sada="UTF-8">
<meta http-ekviv="X-UA-kompatibilné" obsah ="IE=okraj">
<meta meno="výrez" obsah ="šírka=šírka zariadenia, počiatočná mierka=1,0">
<!-- tituly -->
{% if title %}
<titul> Zdedené šablóny {{title}}</title>
{% inak %}
<titul> Zdedené šablóny </title>
{% koniec Ak %}
{% štýlov blokovania %}
{% bootstrap_css %}
<odkaz rel="štýlov" href="{% statické 'css/style.css' %}">
{% koncový blok %}
</head>
<telo>
{% zahŕňajú 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Bootstrap odkazy -->
<skript src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrita ="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymný"></script>
</body>
</html>

Najprv načítajte Bootstrap a statické závislosti na base.html šablóna. Môžeš použite rámec Bootstrap s vaším projektom Django na štýl HTML stránok. Statická závislosť načítaná v hornej časti načíta aktíva zahrnuté v statickom priečinku.

Šablóny Django vám umožňujú odovzdať časti logiky zodpovedné za zobrazovanie obsahu. Značky šablón pozostávajú z textu obklopeného „{%" a "%}“ postavy. The ak/inak príkaz kontroluje podmienky vo funkcii zobrazenia. Ak je podmienka pravdivá, vykreslí obsah v prvom bloku; ak je nepravda, vykreslí obsah v druhom.

The base.html súbor vykreslí aj obsah navbar.html priamo tam, kde umiestnite značky šablóny. To znamená, že kedykoľvek predĺžite base.html, navbar.html sa tiež dedí. Akákoľvek šablóna rozširujúca base.html zdedí akýkoľvek prvok s a {% include %} tag.

Akýkoľvek text obklopený {{}} je premenná šablóny. Premenné šablóny sú dynamické údaje poskytované funkciami zobrazenia. Django tiež používa blokové značky, ktoré používajú otvorenú značku, napr {% block content %}a záverečná značka, napr {% koncový blok %}.

Značky bloku umožňujú podriadeným šablónam prepísať obsah nadradených šablón. V tomto prípade, index.html môže nahradiť svoj obsah v oblasti ohraničenej blokovými značkami. Nebude to prekážať tomu druhému base.html komponentov.

Aplikujme logiku na index.html

{% predlžuje 'base.html' %}
{% block content %}
<trieda div="kontajnerové textové centrum" štýl="farba: biela">
<h1>I Am The Index Template</h1>
<p>Zdedil som Bootstrap a navigačný panel z base.html</str>
</div>
{% koncový blok %}

V index.html šablónu, použite {% predĺžiť %} tag na rozšírenie komponentov base.html. Vnútri blokových značiek {% block content %}, napíšte celý kód.

V index.html šablóny, máte prvok H1 a odsek. Značky šablóny vo vnútri prvkov div môžete použiť na volanie premenných z vyhliadka funkciu.

Testovať dedičnosť šablóny v prehliadači

Teraz môžete spustiť server. Keď tak urobíte, skontrolujte v prehliadači, či je index.html súbor zdedil prvky base.html. To zahŕňa odkazy Bootstrap a navbar.html šablóna.

The index.html súbor by mal zdediť štýly navbar a Bootstrap zo základnej šablóny. Ak áno, správne ste použili dedenie šablóny. Bez nej by ste museli pridať navigačný panel a odkazy Bootstrap tam, kde ste ich potrebovali.

Tiež všetky zmeny, ktoré vykonáte na base.html sa prejaví vo všetkých šablónach, na ktoré sa vzťahuje. Tento princíp je dôležitý pri riešení chýb. Šablóny s chybami môžete ľahko identifikovať.

Dedičnosť šablóny je jedným z mnohých spôsobov, ako Django implementuje princíp Don't Repeat Yourself (DRY). Váš vývoj bude oveľa jednoduchší a jednoduchší.

Prečo by ste mali používať dedičnosť šablóny Django

Dedičnosť šablóny Django je jednou z najkomplexnejších funkcií. Môže to chvíľu trvať, kým to pochopíte, ale keď to pochopíte, ušetrí to veľa úsilia pri vývoji.

Dedičnosť šablón vám umožňuje zdieľať kód medzi nadradenými a podradenými šablónami. To zaisťuje, že do svojich šablón nebudete písať opakujúci sa kód.

Dedičnosť šablóny je dôležitá vo veľkých projektoch Django. V takýchto prípadoch existuje veľa aplikácií a veľa šablón na navrhovanie. Rodičovské šablóny vám poskytujú veľa kontroly nad ostatnými komponentmi aplikácie.

Naučením sa systému šablón Django si môžete vychutnať písanie čistého a výkonného kódu.