Ena najmočnejših lastnosti Djanga je njegova sposobnost dinamične ponovne uporabe kode. Dedovanje predlog omogoča skupno rabo kode med nadrejenimi in podrejenimi predlogami. Močno zmanjša podvajanje truda.
Django ima svoj predlogni jezik, zasnovan tako, da se zlije s HTML. Z Djangovimi predlogami boste zlahka delali, če ste že delali s kodo HTML. Drugi besedilni jeziki predlog, kot sta Smarty ali Jinja2, imajo podobno sintakso.
Naučimo se več o dedovanju predlog z izdelavo projekta Django.
Kaj je predloga Django?
V Djangu je predloga besedilna datoteka, ki lahko ustvari katero koli besedilno obliko, kot je HTML, XML ali CSV.
Oznake predlog Django nadzira logiko, ki zajema spremenljivke in vrednosti v predlogi. Oznake pomagajo ločiti logiko programa od predstavitve predloge. Prav tako pomagajo ohranjati vaše predloge čiste in organizirane.
Django ima veliko vgrajenih oznak, ki izgledajo kot
{% oznaka %}. Oznake so koristne na več načinov. Ustvarijo lahko besedilo v izhodu, izvajajo zanke in naložijo informacije v predlogo.V tem projektu boste uporabljali oznake za prikaz dedovanja predloge.
Ustvarite projekt Django
Za začetek, ustvarite projekt Django. Ustvarite aplikacijo z imenom predloge. Ko to storite, ste pripravljeni ustvariti funkcijo pogleda za aplikacijo, pot URL in predloge za prikaz dedovanja predlog.
Ustvarite funkcijo pogleda
Najprej ustvarite a pogled funkcijo, ki upodablja predloge. V tem primeru boste upodobili index.html predlogo. Uvozite upodabljati metoda iz bližnjic Django. Nato ustvarite funkcijo pogleda z imenom index, ki vrne in upodobi predlogo indeksa.
od django.shortcuts uvoz upodabljati
# Tukaj ustvarite svoje poglede.
defkazalo(prošnja):
vrni render (zahteva,'index.html')
Ustvarite URL pot
Nato ustvarite a URL pot za funkcijo pogleda za prikaz predlog. Uvozite pot funkcijo iz django.urls in pogled funkcijo od views.py mapa. Nato uvozite nastavitve in statična za upodabljanje vseh slik in medijev, ki jih morda imate v predlogah.
od django.urls uvoz pot
od. uvoz pogledi
od django.conf uvoz nastavitve
od django.conf.urls.static uvozstatična
urlpatterns=[
pot('',views.index, ime='kazalo'),
]
čenastavitve.DEBUG:
urlpatterns+=statična(nastavitve. MEDIA_URL, document_root=nastavitve. MEDIA_ROOT)
Ustvarite predloge
Zdaj, ko imate pogled in URL poti, ustvarite predloge. Če želite prikazati dedovanje predloge, ustvarite a base.html kot nadrejena predloga. The base.html datoteka bo vsebovala splošne elemente, s katerimi želite dati v skupno rabo index.html,podrejena predloga.
{% naloži bootstrap5 %}
{% obremenitev statična %}
<!DOCTYPE html>
<html lang="en">
<glavo>
<meta charset="UTF-8">
<meta http-ekviv="Združljiv z X-UA" vsebina="IE=rob">
<meta ime="vidno polje" vsebina="širina=širina naprave, začetna lestvica=1,0">
<!-- naslovi -->
{% if title %}
<naslov> Podedovane predloge {{title}}</title>
{% drugače %}
<naslov> Podedovane predloge </title>
{% endif %}
{% slogi blokov %}
{% bootstrap_css %}
<povezava rel="slogovna tabela" href="{% statično 'css/style.css' %}">
{% endblock %}
</head>
<telo>
{% vključuje 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Bootstrap povezave -->
<skript src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integriteta="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" navzkrižno poreklo="anonimen"></script>
</body>
</html>
Najprej naložite Bootstrap in statične odvisnosti na base.html predlogo. Ti lahko uporabite ogrodje Bootstrap s svojim projektom Django za oblikovanje strani HTML. Statična odvisnost, naložena na vrhu, bo naložila sredstva, vključena v statično mapo.
Predloge Django vam omogočajo posredovanje bitov logike, ki so odgovorni za prikaz vsebine. Oznake predloge so sestavljene iz besedila, obdanega z "{%" in "%}"znaki. The če potem stavek preveri pogoje v funkciji pogleda. Če je pogoj resničen, upodobi vsebino v prvem bloku; če je false, bo vsebino upodobil v drugem.
The base.html bo upodobila tudi vsebino navbar.html prav tam, kjer postavite oznake predloge. To pomeni, da kadarkoli podaljšate base.html, navbar.html se tudi deduje. Vsaka predloga, ki razširja base.html bo podedoval kateri koli element z an {% vključuje %} oznaka.
Vsako besedilo, obkroženo z {{}} je spremenljivka predloge. Spremenljivke predloge so dinamični podatki, ki jih zagotavljajo funkcije pogleda. Django uporablja tudi blokovne oznake, ki uporabljajo odprto oznako, na primer {% blok vsebine %}, in zaključno oznako, kot je {% endblock %}.
Oznake blokov omogočajo podrejenim predlogam, da preglasijo vsebino nadrejenih predlog. V tem primeru je index.html lahko zamenja svojo vsebino v območju, obdanem z oznakami blokov. Ne bo motilo drugega base.html komponente.
Uporabimo logiko za index.html
{% se razteza 'base.html' %}
{% blok vsebine %}
<razred div="vsebnik text-center" slog="barva: bela">
<h1>Jaz sem predloga kazala</h1>
<str>Bootstrap in navbar sem podedoval iz base.html</str>
</div>
{% endblock %}
V index.html predlogo, uporabite {% razširi %} oznako za razširitev komponent base.html. Znotraj oznak blokov {% blok vsebine %}, napišite vso svojo kodo.
V index.html predlogo, imate H1 in element odstavka. Uporabite lahko oznake predlog znotraj divov za klicanje spremenljivk iz pogled funkcijo.
Preizkusite dedovanje predloge v brskalniku
Zdaj lahko zaženete strežnik. Ko to storite, v brskalniku preverite, ali je index.html datoteka je podedovala elemente base.html. To vključuje povezave Bootstrap in navbar.html predlogo.
The index.html Datoteka mora podedovati sloge navbar in Bootstrap iz osnovne predloge. Če je tako, ste pravilno uporabili dedovanje predloge. Brez tega bi morali dodati navigacijsko vrstico in povezave Bootstrap, kjer bi jih potrebovali.
Prav tako vse spremembe, ki jih naredite v base.html se bo odražal v vseh predlogah, na katere se razširi. To načelo je pomembno pri obravnavanju napak. Predloge z napakami lahko enostavno prepoznate.
Dedovanje predlog je eden od mnogih načinov, kako Django izvaja načelo Ne ponavljaj se (DRY). Tako bo vaš razvoj veliko lažji in enostavnejši.
Zakaj bi morali uporabljati Django Template Inheritance
Djangovo dedovanje predloge je ena njegovih najbolj zapletenih lastnosti. Morda bo trajalo nekaj časa, da ga boste razumeli, a ko ga boste razumeli, boste prihranili veliko razvojnega truda.
Dedovanje predlog vam omogoča skupno rabo kode med nadrejenimi in podrejenimi predlogami. To zagotavlja, da v svoje predloge ne pišete ponavljajoče se kode.
Dedovanje predlog je pomembno pri velikih projektih Django. V takih primerih obstaja veliko aplikacij in veliko predlog za oblikovanje. Nadrejene predloge vam omogočajo veliko nadzora nad drugimi komponentami aplikacije.
Če se naučite sistema predlog Django, lahko uživate v pisanju čiste in zmogljive kode.