Template-kiegészítés
Egy másik szuper dolog, amit a Django tud, a template extending, vagyis template-kiegészítés. Mit jelent ez? Azt, hogy a HTML-ed egyes részeit több oldalon is fel tudod használni az alkalmazásodban.
Így nem kell megismételned magad minden fájlban, ha ugyanazt az információt szeretnéd felhasználni, vagy ugyanolyan layout-ot tervezel. És ha meg szeretnél változtatni valamit, nem kell minden sablonban külön megtenned, csak egyszer!
Hozd létre az alap template-et
A base (alap) template a legegyszerűbb sablon, amit az alkalmazásod összes oldalán kiegészítesz.
Hozz létre egy base.html
fájlt a blog/templates/blog/
-ban:
Majd nyisd meg, és másolj át mindent a post_list.html
-ből a base.html
-be, így:
Aztán a base.html
-ben cseréld ki az egész <body>
-t (mindent a <body>
és a </body>
között) erre:
Lényegében a `
` részt kicseréltük erre:
Ez mit is jelent? Létrehoztál egy block
-ot. Ez egy olyan template tag, amely segítségével HTML-t illeszthetsz be a blokkba más template-ekben, ezzel kiegészítve a base.html
-t. Máris megmutatjuk, hogy működik.
Most mentsd el, és nyisd meg újra a blog/templates/blog/post_list.html
-t. Törölj ki mindent a body-n kívül, és a <div class="page-header"></div>
részt is, hogy így nézzen ki a fájl:
És most add hozzá ezt a sort a fájl elejéhez:
Ez azt jelenti, hogy most a base.html
template-et egészítjük ki a post_list.html
-ben. Már csak egy dolog van hátra: az előző sor kivételével rakj mindent {% block content %}
és {% endblock %}
közé. Így:
Ez az! Nézd meg, hogy még mindig működik-e a weboldalad :)
Ha
TemplateDoesNotExists
(a template nem létezik) hibát kapsz, ami azt mondja, nincsblog/base.html
fájlod, és fut arunserver
a konzolban, próbáld meg leállítani (Ctrl+C-vel, vagyis egyszerre nyomd meg a Control és a C billentyűt) és indítsd el újra apython manage.py runserver
paranccsal.
Last updated