Eine der leistungsstärksten Funktionen von Django ist die Fähigkeit, Code dynamisch wiederzuverwenden. Die Vorlagenvererbung ermöglicht die gemeinsame Nutzung von Code zwischen übergeordneten und untergeordneten Vorlagen. Es reduziert Doppelarbeit erheblich.
Die Template-Sprache von Django ist so konzipiert, dass sie sich in HTML einfügt. Sie werden es einfach finden, mit den Vorlagen von Django zu arbeiten, wenn Sie zuvor mit HTML-Code gearbeitet haben. Andere textbasierte Vorlagensprachen wie Smarty oder Jinja2 haben eine ähnliche Syntax.
Lassen Sie uns mehr über die Vorlagenvererbung erfahren, indem wir ein Django-Projekt erstellen.
Was ist eine Django-Vorlage?
In Django ist eine Vorlage eine Textdatei, die jedes textbasierte Format wie HTML, XML oder CSV generieren kann.
Django-Template-Tags Steuern Sie die Logik, die Variablen und Werte in der Vorlage einschließt. Die Tags helfen dabei, die Programmlogik von der Vorlagenpräsentation zu trennen. Sie helfen auch, Ihre Vorlagen sauber und organisiert zu halten.
Django hat viele eingebaute Tags, die so aussehen {% Schild %}. Tags sind in vielerlei Hinsicht hilfreich. Sie können Text in der Ausgabe erstellen, Schleifen ausführen und Informationen in die Vorlage laden.
In diesem Projekt verwenden Sie Tags, um die Vorlagenvererbung zu demonstrieren.
Erstellen Sie ein Django-Projekt
Um loszulegen, Erstellen Sie ein Django-Projekt. Erstellen Sie eine App mit dem Namen Vorlagen. Anschließend können Sie eine Ansichtsfunktion für die App, einen URL-Pfad und Vorlagen erstellen, um die Vorlagenvererbung zu demonstrieren.
Erstellen Sie eine Ansichtsfunktion
Erstellen Sie zunächst eine Sicht Funktion, die die Vorlagen rendert. In diesem Fall rendern Sie die index.html Vorlage. Importieren Sie die machen -Methode von Django-Verknüpfungen. Erstellen Sie dann eine Ansichtsfunktion namens index, die die Indexvorlage zurückgibt und darstellt.
aus django.shortcuts importieren machen
# Erstellen Sie hier Ihre Ansichten.
defIndex(Anfrage):
zurück rendern (Anfrage,'index.html')
Erstellen Sie einen URL-Pfad
Als nächstes erstellen Sie eine URL-Pfad für die Ansichtsfunktion, um die Vorlagen anzuzeigen. Importieren Sie die Weg Funktion von django.urls und der Sicht Funktion ab Ansichten.py Datei. Dann importieren Einstellungen Und statisch um alle Bilder und Medien zu rendern, die Sie möglicherweise in den Vorlagen haben.
aus django.urls importieren Weg
aus. importieren Ansichten
aus django.conf importieren Einstellungen
aus django.conf.urls.static importierenstatisch
URL-Muster=[
Weg('',views.index, name='Index'),
]
WennEinstellungen.DEBUGGEN:
URL-Muster+=statisch(Einstellungen. MEDIA_URL, document_root=Einstellungen. MEDIA_ROOT)
Vorlagen erstellen
Jetzt, wo Sie die haben Sicht Und URL Pfad, erstellen Sie die Vorlagen. Um die Vorlagenvererbung zu demonstrieren, erstellen Sie eine basis.html als übergeordnete Vorlage. Der basis.html Datei wird allgemeine Elemente enthalten, mit denen Sie teilen möchten index.html, die untergeordnete Vorlage.
{% bootstrap5 laden %}
{% Belastung statisch %}
<!DOCTYPE html>
<htmllang="en">
<Kopf>
<Metazeichensatz="UTF-8">
<meta http-equiv="X-UA-kompatibel" Inhalt="IE=Rand">
<metaname="Ansichtsfenster" Inhalt="width=Gerätebreite, initial-scale=1.0">
<!-- Titel -->
{% wenn Titel %}
<Titel> Geerbte Vorlagen {{title}}</title>
{% anders %}
<Titel> Geerbte Vorlagen </title>
{% endif %}
{% Blockstile %}
{% bootstrap_css %}
<link rel="Stylesheet" href="{% statisch 'css/style.css' %}">
{% Endblock %}
</head>
<Körper>
{% enthalten 'Navigationsleiste.html' %}
{% Blockinhalt %} {% Endblock %}
<!-- Bootstrap-Links -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" Integrität ="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" Crossorigin="anonym"></script>
</body>
</html>
Laden Sie zuerst die Bootstrap- und statischen Abhängigkeiten in die basis.html Vorlage. Du kannst Verwenden Sie das Bootstrap-Framework mit Ihrem Django-Projekt um die HTML-Seiten zu stylen. Die oben geladene statische Abhängigkeit lädt Assets, die im statischen Ordner enthalten sind.
Mit Django-Vorlagen können Sie logische Elemente übergeben, die für die Anzeige von Inhalten verantwortlich sind. Vorlagen-Tags bestehen aus Text, der von "{%" Und "%}" Figuren. Der ansonsten -Anweisung prüft auf Bedingungen in der Ansichtsfunktion. Wenn die Bedingung wahr ist, wird der Inhalt im ersten Block gerendert; wenn falsch, wird der Inhalt in der zweiten gerendert.
Der basis.html Datei wird auch den Inhalt von rendern Navigationsleiste.html genau dort, wo Sie die Vorlagen-Tags platzieren. Das heißt, wann immer Sie die verlängern basis.html, Navigationsleiste.html wird auch vererbt. Jede Vorlage, die die erweitert basis.html erbt jedes Element mit einem {% enthalten %} Schild.
Beliebiger Text umgeben von {{}} ist eine Vorlagenvariable. Vorlagenvariablen sind dynamische Daten, die von Ansichtsfunktionen bereitgestellt werden. Django verwendet auch Block-Tags, die ein offenes Tag verwenden, wie z {% Inhalt blockieren %}, und ein schließendes Tag, wie z {% Endblock %}.
Block-Tags ermöglichen es den untergeordneten Vorlagen, den Inhalt der übergeordneten Vorlagen zu überschreiben. In diesem Fall ist die index.html kann seinen Inhalt in dem von Block-Tags umschlossenen Bereich ersetzen. Es wird das andere nicht stören basis.html Komponenten.
Wenden wir die Logik auf die an index.html
{% erweitert 'basis.html' %}
{% Inhalt blockieren %}
<div-Klasse="Container Textzentrum" Stil="Farbe weiß">
<h1>Ich bin die Indexvorlage</h1>
<P>Ich habe Bootstrap und die Navigationsleiste von base.html geerbt</P>
</div>
{% Endblock %}
Im index.html Vorlage verwenden Sie die {% erweitern %} -Tag zum Erweitern von Komponenten der basis.html. Innerhalb der Block-Tags {% Inhalt blockieren %}, schreiben Sie Ihren gesamten Code.
Im index.html Vorlage haben Sie ein H1- und ein Absatzelement. Sie können die Template-Tags innerhalb der divs verwenden, um Variablen aus der aufzurufen Sicht Funktion.
Testen Sie die Vorlagenvererbung im Browser
Sie können den Server jetzt ausführen. Überprüfen Sie anschließend im Browser, ob die index.html Datei geerbt die Elemente von basis.html. Dazu gehören Bootstrap-Links und die Navigationsleiste.html Vorlage.
Der index.html Datei sollte die Navigationsleisten- und Bootstrap-Stile von der Basisvorlage erben. Wenn dies der Fall ist, haben Sie die Vorlagenvererbung korrekt verwendet. Ohne sie hätten Sie die Navigationsleiste und die Bootstrap-Links dort hinzufügen müssen, wo Sie sie benötigten.
Auch alle Änderungen, die Sie an der vornehmen basis.html spiegelt sich in allen Vorlagen wider, auf die es sich erstreckt. Dieses Prinzip ist bei der Fehlerbehandlung wichtig. Sie können Vorlagen mit Fehlern leicht identifizieren.
Die Vorlagenvererbung ist eine der vielen Möglichkeiten, wie Django das DRY-Prinzip (Don't Repeat Yourself) implementiert. Es wird Ihre Entwicklung viel einfacher und einfacher machen.
Warum Sie die Vererbung von Django-Vorlagen verwenden sollten
Die Template-Vererbung von Django ist eine der komplexesten Funktionen. Es kann einige Zeit dauern, es zu verstehen, aber wenn Sie es einmal verstanden haben, spart es eine Menge Entwicklungsaufwand.
Mit der Vorlagenvererbung können Sie Code zwischen übergeordneten und untergeordneten Vorlagen freigeben. Dadurch wird sichergestellt, dass Sie keinen sich wiederholenden Code in Ihre Vorlagen schreiben.
Die Vorlagenvererbung ist in großen Django-Projekten wichtig. In solchen Fällen gibt es viele Anwendungen und viele Vorlagen zu entwerfen. Die übergeordneten Vorlagen geben Ihnen viel Kontrolle über die anderen Komponenten der Anwendung.
Durch das Erlernen des Django-Vorlagensystems können Sie sauberen und leistungsstarken Code schreiben.