Üks Django võimsamaid omadusi on selle võime koodi dünaamiliselt taaskasutada. Mallide pärimine võimaldab koodi jagada vanema- ja alammallide vahel. See vähendab oluliselt jõupingutuste dubleerimist.
Django mallikeel on loodud HTML-iga sulandumiseks. Kui olete varem HTML-koodiga töötanud, on Django mallidega lihtne töötada. Teistel tekstipõhistel mallikeeltel, nagu Smarty või Jinja2, on sarnane süntaks.
Lisateavet mallide pärimise kohta Django projekti loomise kaudu.
Mis on Django mall?
Djangos on mall tekstifail, mis suudab genereerida mis tahes tekstipõhist vormingut, nagu HTML, XML või CSV.
Django malli sildid juhtida mallis olevaid loogilisi muutujaid ja väärtusi. Sildid aitavad eraldada programmiloogikat malliesitlusest. Samuti aitavad need teie mallid puhtana ja korras hoida.
Djangol on palju sisseehitatud silte, mis näevad välja nagu {% tag %}
. Sildid on kasulikud mitmel viisil. Nad saavad luua väljundis teksti, sooritada silmuseid ja laadida teavet malli.Selles projektis kasutate mallide pärimise demonstreerimiseks silte.
Looge Django projekt
Alustamiseks luua Django projekt. Looge rakendus nimega mallid. Kui olete seda teinud, olete valmis looma rakendusele vaatefunktsiooni, URL-i tee ja mallid, et näidata malli pärimist.
Looge vaatefunktsioon
Esiteks looge a vaade funktsioon, mis mallid renderdab. Sel juhul renderdate index.html malli. Importige renderdama meetod Django otseteedest. Seejärel looge vaatefunktsioon nimega indeks, mis tagastab ja renderdab indeksi malli.
alates django.otseteed importida renderdama
# Looge siin oma vaated.
defindeks(taotlus):
tagasta renderdus (taotlus,'index.html')
Looge URL-i tee
Järgmisena looge a URL-i tee kuvamise funktsiooni jaoks mallide kuvamiseks. Importige tee funktsioon django.urls ja vaade funktsioon alates views.py faili. Seejärel importige seaded ja staatiline mallides leiduvate piltide ja meediumide renderdamiseks.
alates django.urls importida tee
alates. importida vaated
alates django.conf importida seaded
alates django.conf.urls.static importidastaatiline
urlpatterns=[
tee ('',views.index, name='indeks'),
]
kuiseaded.DEBUG:
urlmustrid+=staatiline(seaded. MEDIA_URL, document_root=settings. MEDIA_ROOT)
Loo mallid
Nüüd, kui teil on vaade ja URL tee, looge mallid. Malli pärimise demonstreerimiseks looge a base.html vanemmallina. The base.html failil on üldised elemendid, millega soovite jagada index.html, lapse mall.
{% load bootstrap5 %}
{% koormus staatiline %}
<!DOCTYPE html>
<html lang="et">
<pea>
<metamärgistik="UTF-8">
<meta http-equiv="X-UA-ühilduv" sisu="IE = serv">
<meta nimi="vaateava" sisu="laius = seadme laius, esialgne skaala = 1,0">
<!-- pealkirjad -->
{% kui pealkiri %}
<pealkiri> Päritud mallid {{title}}</title>
{% muidu %}
<pealkiri> Päritud mallid </title>
{% endif %}
{% block styles %}
{% bootstrap_css %}
<link rel="stiilileht" href="{% staatiline 'css/style.css' %}">
{% endblock %}
</head>
<keha>
{% sealhulgas 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Alglaadimislingid -->
<skript src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" terviklikkus="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonüümne"></script>
</body>
</html>
Esiteks laadige Bootstrap ja staatilised sõltuvused saidile base.html malli. Sa saad kasutage oma Django projektiga Bootstrapi raamistikku HTML-lehtede stiili kujundamiseks. Ülaosas laaditud staatiline sõltuvus laadib staatilises kaustas olevad varad.
Django mallid võimaldavad teil edastada sisu kuvamise eest vastutavaid loogikatükke. Malli sildid koosnevad tekstist, mille ümber on "{%" ja "%}"tegelased. The kui/muidu lause kontrollib vaatefunktsiooni tingimusi. Kui tingimus on tõene, renderdab see esimese ploki sisu; kui see on vale, renderdab see sisu teises.
The base.html fail renderdab ka faili sisu navbar.html just sinna, kuhu mallisildid asetate. See tähendab, et alati, kui pikendate base.html, navbar.html on ka päritud. Iga mall, mis pikendab base.html pärib mis tahes elemendi, millel on an {% sisaldab %} tag.
Mis tahes tekst, mida ümbritseb {{}} on mallimuutuja. Malli muutujad on vaatefunktsioonide pakutavad dünaamilised andmed. Django kasutab ka plokk-silte, mis kasutavad avatud silti, näiteks {% blokeerida sisu %}, ja sulgev silt, nagu {% endblock %}.
Blokisildid võimaldavad alammallidel alistada ülemmallide sisu. Sel juhul on index.html võib selle sisu asendada plokk-siltide piires. See ei sega teist base.html komponendid.
Rakendame loogikat index.html
{% pikendab 'base.html' %}
{% blokeerida sisu %}
<div klass="konteineri tekstikeskus" stiil="värvus: valge">
<h1>Ma olen indeksi mall</h1>
<lk>Ma pärisin Bootstrapi ja navigeerimisriba saidilt base.html</lk>
</div>
{% endblock %}
Aastal index.html malli, kasutage {% pikendada %} sildi komponentide laiendamiseks base.html. Ploki siltide sees {% blokeerida sisu %}, kirjutage kogu oma kood.
Aastal index.html malli, on teil H1 ja lõigu element. Divs-i sees olevaid mallisilte saate muutujate kutsumiseks kasutada vaade funktsiooni.
Testige mallide pärimist brauseris
Nüüd saate serverit käivitada. Kui olete seda teinud, kontrollige brauseris, kas index.html fail päris elemendid base.html. See hõlmab Bootstrapi linke ja navbar.html malli.
The index.html fail peaks pärima navigeerimisriba ja Bootstrapi stiilid põhimallist. Kui jah, siis olete malli pärimist õigesti kasutanud. Ilma selleta oleksite pidanud lisama navigeerimisriba ja Bootstrapi lingid sinna, kus neid vajasite.
Samuti kõik muudatused, mida teete base.html kajastub kõigis mallides, millele see laieneb. See põhimõte on vigade käsitlemisel oluline. Saate hõlpsalt tuvastada vead sisaldavaid malle.
Malli pärimine on üks paljudest viisidest, kuidas Django rakendab põhimõtet Ära korda ennast (DRY). See muudab teie arengu palju lihtsamaks ja lihtsamaks.
Miks peaksite kasutama Django malli pärimist
Django mallide pärimine on üks selle keerukamaid funktsioone. Selle mõistmine võib võtta veidi aega, kuid kui see on tehtud, säästab see palju arendustööd.
Mallide pärimine võimaldab teil koodi jagada vanem- ja alammallide vahel. See tagab, et te ei kirjuta oma mallidesse korduvat koodi.
Suurte Django projektide puhul on mallide pärimine oluline. Sellistel juhtudel on disainimiseks palju rakendusi ja palju malle. Vanemmallid annavad teile palju kontrolli rakenduse muude komponentide üle.
Õppides Django mallisüsteemi, saate nautida puhta ja võimsa koodi kirjutamist.