Razumijevanje nasljeđivanja predložaka u Djangu

Razumijevanje nasljeđivanja predložaka u Djangu
Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Jedna od najmoćnijih značajki Djanga je njegova sposobnost dinamičke ponovne upotrebe koda. Nasljeđivanje predložaka omogućuje dijeljenje koda između nadređenih i podređenih predložaka. To uvelike smanjuje dupliranje napora.





prenesite pohranu google pogona na drugi račun

Django ima svoj jezik predložaka dizajniran da se stapa s HTML-om. Lako ćete raditi s Djangovim predlošcima ako ste prije radili s HTML kodom. Drugi jezici predložaka temeljeni na tekstu kao što su Smarty ili Jinja2 imaju sličnu sintaksu.





MAKEUSEOF VIDEO DANA

Naučimo više o nasljeđivanju predložaka izgradnjom Django projekta.





Što je Django predložak?

U Djangu, predložak je tekstualna datoteka koja može generirati bilo koji tekstualni format, kao što je HTML, XML ili CSV.

Django predloške oznake kontrolirati logiku koja obuhvaća varijable i vrijednosti u predlošku. Oznake pomažu odvojiti logiku programa od prezentacije predloška. Oni također pomažu da vaši predlošci budu čisti i organizirani.



Django ima mnogo ugrađenih oznaka koje izgledaju kao {% oznaka %} . Oznake su korisne na mnogo načina. Oni mogu stvoriti tekst u izlazu, izvoditi petlje i učitati podatke u predložak.

U ovom projektu ćete koristiti oznake za demonstraciju nasljeđivanja predložaka.





Stvorite Django projekt

Započeti, stvoriti Django projekt . Izradite aplikaciju pod nazivom šablone . Nakon što to učinite, spremni ste za izradu funkcije prikaza za aplikaciju, URL putanju i predloške za demonstraciju nasljeđivanja predložaka.

Stvorite funkciju prikaza

Najprije stvorite a pogled funkcija koja prikazuje predloške. U ovom slučaju, prikazat ćete index.html šablona. Uvezi prikazati metoda iz Django prečaca. Zatim stvorite funkciju pogleda pod nazivom index koja vraća i prikazuje predložak indeksa.





CC82DAA3D0EBAE3F46C39C4669BA58B5C1E7EF6

Stvorite URL put

Zatim stvorite a URL put za funkciju prikaza za prikaz predložaka. Uvezi staza funkcija iz django.urls i pogled funkcija iz pogledi.py datoteka. Zatim uvoz postavke i statički za prikaz svih slika i medija koje možda imate u predlošcima.

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)

Stvorite predloške

Sada kada imate pogled i URL put, izradite predloške. Da biste demonstrirali nasljeđivanje predloška, ​​kreirajte a baza.html kao roditeljski predložak. The baza.html datoteka će sadržavati opće elemente s kojima želite dijeliti index.html , dječji predložak.

{% 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>

Prvo učitajte Bootstrap i statičke ovisnosti na baza.html šablona. Možeš koristite Bootstrap framework sa svojim Django projektom za stiliziranje HTML stranica. Statička ovisnost učitana na vrhu će učitati sredstva uključena u statičku mapu.

Django predlošci vam omogućuju prosljeđivanje bitova logike odgovornih za prikazivanje sadržaja. Oznake predloška sastoje se od teksta okruženog s ' {% ' i ' %} ' likovi. The ako/drugo iskaz provjerava uvjete u funkciji prikaza. Ako je uvjet istinit, renderira sadržaj u prvom bloku; ako je false, prikazat će sadržaj u drugom.

The baza.html datoteka također će prikazati sadržaj navbar.html upravo tamo gdje postavljate oznake predložaka. To znači kad god produžite baza.html , navbar.html također se nasljeđuje. Svaki predložak koji proširuje baza.html će naslijediti bilo koji element s an {% uključuje %} označiti.

Svaki tekst okružen {{}} je varijabla predloška. Varijable predloška su dinamički podaci koje pružaju funkcije prikaza. Django također koristi blok oznake koje koriste otvorenu oznaku, kao što je {% blokiraj sadržaj %} , i završnu oznaku, poput {% endblock %} .

Oznake bloka dopuštaju podređenim predlošcima da nadjačaju sadržaj nadređenih predložaka. U ovom slučaju, index.html može zamijeniti svoj sadržaj u području omeđenom blok oznakama. Neće smetati drugome baza.html komponente.

kako ubrzati rad sustava Windows 10

Primijenimo logiku na 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 %}

u index.html predložak, koristite {% produži %} oznaka za proširenje komponenti baza.html . Unutar oznaka bloka {% blokiraj sadržaj %} , napišite sav svoj kod.

u index.html predložak, imate H1 i element paragrafa. Možete koristiti oznake predložaka unutar divova za pozivanje varijabli iz pogled funkcija.

Testirajte nasljeđivanje predloška u pregledniku

Sada možete pokrenuti poslužitelj. Nakon što to učinite, provjerite u pregledniku je li index.html datoteka je naslijedila elemente baza.html . To uključuje Bootstrap veze i navbar.html šablona.

  index.html s navigacijskom trakom iz base.html

The index.html datoteka treba naslijediti stilove navigacijske trake i Bootstrapa iz osnovnog predloška. Ako je tako, ispravno ste upotrijebili nasljeđivanje predloška. Bez toga, morali biste dodati navigacijsku traku i Bootstrap veze tamo gdje su vam bili potrebni.

Također, sve promjene koje napravite na baza.html odrazit će se na sve predloške na koje se proteže. Ovo je načelo važno u rješavanju pogrešaka. Možete lako prepoznati predloške s greškama.

Nasljeđivanje predložaka je jedan od mnogih načina na koji Django implementira princip Ne ponavljaj se (DRY). To će učiniti vaš razvoj puno lakšim i jednostavnijim.

Zašto biste trebali koristiti Django Template Inheritance

Djangovo nasljeđivanje predložaka jedna je od njegovih najsloženijih značajki. Možda će trebati neko vrijeme da to shvatite, ali kada to shvatite, uštedjet ćete mnogo truda u razvoju.

Nasljeđivanje predložaka omogućuje vam dijeljenje koda između nadređenih i podređenih predložaka. To osigurava da ne pišete ponavljajući kod u svojim predlošcima.

Nasljeđivanje predložaka je važno u velikim Django projektima. U takvim slučajevima postoji mnogo aplikacija i mnogo predložaka za dizajn. Nadređeni predlošci daju vam puno kontrole nad ostalim komponentama aplikacije.

Učeći Django sustav predložaka, možete uživati ​​u pisanju čistog i moćnog koda.