Viena iš galingiausių Django savybių yra galimybė pakartotinai naudoti kodą dinamiškai. Šablonų paveldėjimas leidžia dalytis kodu tarp tėvų ir antrinių šablonų. Tai labai sumažina pastangų dubliavimą.
„Django“ turi savo šablonų kalbą, skirtą susilieti su HTML. Jei anksčiau dirbote su HTML kodu, dirbti su Django šablonais bus lengva. Kitos teksto šablonų kalbos, tokios kaip Smarty arba Jinja2, turi panašią sintaksę.
Sužinokime daugiau apie šablonų paveldėjimą kurdami Django projektą.
Kas yra Django šablonas?
„Django“ šablonas yra tekstinis failas, galintis generuoti bet kokį teksto formatą, pvz., HTML, XML arba CSV.
Django šablono žymos valdyti šablone esančius loginius kintamuosius ir reikšmes. Žymos padeda atskirti programos logiką nuo šablono pateikimo. Jie taip pat padeda išlaikyti jūsų šablonus švarius ir tvarkingus.
„Django“ turi daug įmontuotų žymų, kurios atrodo taip
{% žyma %}. Žymos yra naudingos daugeliu atžvilgių. Jie gali sukurti tekstą išvestyje, atlikti kilpas ir įkelti informaciją į šabloną.Šiame projekte naudosite žymas, kad parodytumėte šablono paveldėjimą.
Sukurkite Django projektą
Pradėti, sukurti Django projektą. Sukurkite programą pavadinimu šablonus. Kai tai padarysite, būsite pasirengę sukurti programos peržiūros funkciją, URL kelią ir šablonus, kad parodytumėte šablono paveldėjimą.
Sukurkite peržiūros funkciją
Pirmiausia sukurkite a peržiūrėti funkcija, kuri pateikia šablonus. Tokiu atveju pateiksite index.html šabloną. Importuoti pateikti metodas iš Django nuorodų. Tada sukurkite rodinio funkciją pavadinimu indeksas, kuri grąžina ir pateikia indekso šabloną.
iš django.shortcuts importuoti pateikti
# Sukurkite savo rodinius čia.
defindeksas(užklausa):
grąžinti vaizdą (užklausą,'index.html')
Sukurkite URL kelią
Tada sukurkite a URL kelias peržiūros funkcijai, kad būtų rodomi šablonai. Importuoti kelias funkcija iš django.urls ir peržiūrėti funkcija nuo views.py failą. Tada importuokite nustatymus ir statinis kad būtų pateikti šablonuose esantys vaizdai ir laikmenos.
iš django.urls importuoti kelias
iš. importuoti Peržiūros
iš django.conf importuoti nustatymus
iš django.conf.urls.static importuotistatinis
urlpatterns=[
kelias ('',views.index, name='indeksas'),
]
jeigunustatymus.DEBUG:
urlpatterns+=statinis(nustatymai. MEDIA_URL, document_root=settings. MEDIA_ROOT)
Kurti šablonus
Dabar, kai turite peržiūrėti ir URL kelią, sukurkite šablonus. Norėdami parodyti šablono paveldėjimą, sukurkite a base.html kaip pirminis šablonas. The base.html faile bus bendrieji elementai, su kuriais norite bendrinti index.html,vaiko šablonas.
{% load bootstrap5 %}
{% apkrova statinis %}
<!DOCTYPE html>
<html lang="lt">
<galva>
<meta simbolių rinkinys ="UTF-8">
<meta http-equiv="Suderinamas su X-UA" turinys="IE = kraštas">
<meta vardas ="peržiūros sritis" turinys="plotis = įrenginio plotis, pradinė skalė = 1,0">
<!-- pavadinimai ->
{% if title %}
<titulą> Paveldėti šablonai {{title}}</title>
{% Kitas %}
<titulą> Paveldėti šablonai </title>
{% endif %}
{% blokuoti stiliai %}
{% bootstrap_css %}
<nuoroda rel="stiliaus lapas" href="{% statinis 'css/style.css' %}">
{% endblock %}
</head>
<kūnas>
{% įtraukti 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Įkrovos nuorodos>
<scenarijus src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" vientisumas ="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="Anoniminis"></script>
</body>
</html>
Pirmiausia įkelkite Bootstrap ir statines priklausomybes į base.html šabloną. Tu gali naudokite „Bootstrap“ sistemą su savo „Django“ projektu Norėdami sukurti HTML puslapių stilių. Viršuje įkelta statinė priklausomybė įkels išteklius, įtrauktus į statinį aplanką.
„Django“ šablonai leidžia perduoti logikos dalis, atsakingas už turinio rodymą. Šablono žymas sudaro tekstas, apsuptas "{%" ir "%}" personažai. The jei/kitaip pareiškimas tikrina sąlygas peržiūros funkcijoje. Jei sąlyga teisinga, turinys pateikiamas pirmame bloke; jei klaidinga, turinys bus pateiktas antrajame.
The base.html failas taip pat pateiks turinį navbar.html ten, kur dedate šablono žymas. Tai reiškia, kad kai tik pratęsiate base.html, navbar.html taip pat yra paveldima. Bet koks šablonas, išplečiantis base.html paveldės bet kurį elementą su an {% apima %} žyma.
Bet koks tekstas, apsuptas {{}} yra šablono kintamasis. Šablono kintamieji yra dinamiški duomenys, kuriuos teikia peržiūros funkcijos. „Django“ taip pat naudoja blokines žymas, kuriose naudojama atvira žyma, pvz {% blokuoti turinį %}, ir baigiamoji žyma, pvz {% endblock %}.
Blokavimo žymos leidžia antriniams šablonams nepaisyti pirminių šablonų turinio. Šiuo atveju, index.html gali pakeisti jo turinį blokų žymomis aptvertoje srityje. Tai netrukdys kitam base.html komponentai.
Taikykime logiką index.html
{% tęsiasi 'base.html' %}
{% blokuoti turinį %}
<div klasė ="konteinerio teksto centras" stilius ="spalva: balta">
<h1>Aš esu rodyklės šablonas</h1>
<p>Paveldėjau Bootstrap ir naršymo juostą iš base.html</p>
</div>
{% endblock %}
Viduje index.html šabloną, naudokite {% pratęsti %} žyma išplėsti komponentus base.html. Bloko etiketės viduje {% blokuoti turinį %}, parašykite visą savo kodą.
Viduje index.html šabloną, turite H1 ir pastraipos elementą. Galite naudoti šablono žymas, esančias divuose, norėdami iškviesti kintamuosius iš peržiūrėti funkcija.
Išbandykite šablono paveldėjimą naršyklėje
Dabar galite paleisti serverį. Kai tai padarysite, naršyklėje patikrinkite, ar index.html failas paveldėjo elementus base.html. Tai apima „Bootstrap“ nuorodas ir navbar.html šabloną.
The index.html failas turėtų paveldėti naršymo juostos ir įkrovos stilius iš pagrindinio šablono. Jei taip, teisingai naudojote šablono paveldėjimą. Be jo, jums būtų reikėję pridėti naršymo juostą ir „Bootstrap“ nuorodas ten, kur jų reikėjo.
Be to, bet kokie jūsų atlikti pakeitimai base.html atsispindės visuose šablonuose, į kuriuos jis įtrauktas. Šis principas yra svarbus sprendžiant klaidas. Galite lengvai identifikuoti šablonus su klaidomis.
Šablonų paveldėjimas yra vienas iš daugelio būdų, kaip „Django“ įgyvendina nekartokite savęs (DRY) principą. Tai padarys jūsų tobulėjimą daug lengvesnį ir paprastesnį.
Kodėl turėtumėte naudoti „Django“ šablono paveldėjimą
„Django“ šablono paveldėjimas yra viena iš sudėtingiausių jo funkcijų. Gali prireikti šiek tiek laiko, kol tai suprasite, bet kai tai padarysite, sutaupysite daug kūrimo pastangų.
Šablonų paveldėjimas leidžia bendrinti kodą tarp tėvų ir antrinių šablonų. Tai užtikrina, kad šablonuose nerašysite pasikartojančio kodo.
Šablonų paveldėjimas yra svarbus dideliuose Django projektuose. Tokiais atvejais galima kurti daugybę programų ir daug šablonų. Pirminiai šablonai suteikia daug galimybių valdyti kitus programos komponentus.
Išmokę „Django“ šablonų sistemą, galėsite mėgautis švaraus ir galingo kodo rašymu.