„Django“ šablonų paveldėjimo supratimas

„Django“ šablonų paveldėjimo supratimas
Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

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ę.





DIENOS VAIZDO ĮRAŠO PAGALBA

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ą.





CC82DAA3D0EBAE3F46C39C4669BA58B5C1E7EF6

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.

from django.urls import path 
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns=[
path('',views.index,name='index'),
]
if settings.DEBUG:
urlpatterns+=static(settings.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 šabloną.

{% load bootstrap5 %} 
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- titles -->
{% if title %}
<title> Inherited Templates {{title}}</title>
{% else %}
<title> Inherited Templates </title>
{% endif %}
{% block styles %}
{% bootstrap_css %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
{% endblock %}
</head>
<body>
{% include 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Bootstrap links -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"> </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 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

{% extends 'base.html' %} 
{% block content %}
<div class="container text-center" style="color: white">
<h1>I Am The Index Template</h1>
<p>I inherited Bootstrap and the navbar from 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ą.

  index.html su naršymo juosta iš base.html

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.

ką daryti, jei jūsų telefonas yra paspaudžiamas?

Š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.