/ Ako funguje Django? - python, django, django-šablóny

Ako funguje Django? - python, django, django-šablóny

Mám súbor index.html v priečinku /templates a mám iný index.html umiestnený v /templates/hello.

Vytvoril som súbor s názvom templates.html v /templates/hello a mala by rozšíriť index.html.

Môžem vytvoriť template.html pomocou dvoch súborov index.html (z oboch adresárov) {% extends index.html %} tag v ňom?

Vďaka.

odpovede:

2 pre odpoveď č. 1

Nemôžete rozšíriť z viacerých šablón django .. je to dedičstvo s jednou líniou.

Ak chceš /templates/index.html ako šablóna základného indexu a /templates/hello/index.html aby sa vaša šablóna indexu pre hello časť vašej žiadosti .. potom by ste mali mať /templates/hello/index.html začať s {% extends "index.html" %}.

Čoskoro pochopiť s šablónam Django ježe základná šablóna .. tá, ktorá je "rozšírená", je šablóna .. a všetko v šablóne sa zobrazí, či už je v rámci blokovej alebo mimo nej.

Keď "rozširujete" šablónu, všetky bloky deklarované, ktoré zodpovedajú blokom v rozšírenej šablóne, budú prepísať obsah týchto blokov.

Väčšina webových stránok / aplikácií má viac či menejdôsledné usporiadanie stránok na stránku. Typické nastavenie šablóny by malo mať hlavnú šablónu, ktorá obsahuje bloky pre všetky rôzne časti stránky, pričom divs a css usporiadajú usporiadanie tak, ako chcete. Dajte toľko ako bežný html .. veci, ktoré sa nemenia často z jednej strany na ďalšiu v tejto základnej šablóne a uistite sa, že základná šablóna obsahuje bloky pre všetko, čo potrebujete vyplniť pri rozšírení šablóny. Tieto bloky môžu obsahovať predvolenú html, ktorá sa zobrazí, ak predlžujúca sa šablóna nenahradí tento blok. Alebo môžu byť prázdne.

Potom pre každú novú variáciu šablóny, ktorú potrebujete, rozšíriť hlavnú šablónu a prepisovať len tie bloky, ktoré je potrebné vyplniť alebo prekrývať.

Nemyslite si na to, že je to tak, že prinášate kódvašu základnú šablónu do šablóny, ktorá ju rozširuje .. Šablóny Django nefungujú takto. Premýšľajte o základnej šablóne ako šablóne, ktorá obsahuje všetky základné stavebné prvky vašej stránky a potom rozšírenie MODIFIES bloky šablóny, ktorú rozšíri.

Ak máte inú situáciu, kedy je potrebné, aby sa jednotlivé časti vašej stránky definovali v rôznych šablónach a chceli by ste ich zložiť, potom to, čo hľadáte, je {% include "templatename" %} tag.