Vertiefte Kenntnisse der Template-Engine von Django und Jinja2 von Flask, spezifische Codebeispiele sind erforderlich
Einführung:
Django und Flask sind zwei häufig verwendete und beliebte Web-Frameworks in Python. Beide bieten leistungsstarke Template-Engines für die Darstellung dynamischer Webseiten. Django verwendet eine eigene Template-Engine, während Flask Jinja2 verwendet. In diesem Artikel werfen wir einen detaillierten Blick auf die Template-Engine von Django und Jinja2 von Flask und stellen einige konkrete Codebeispiele bereit, um deren Verwendung und Unterschiede zu veranschaulichen.
1. Django-Vorlagen-Engine
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
In der Ansichtsfunktion können wir die Daten an die Vorlage übergeben und sie mit render
rendern Funktion. Beispielsweise können wir eine Variable mit dem Namen „name“ an die Vorlage übergeben: render
函数将数据传递给模板并进行渲染。例如,我们可以传递一个名为“name”的变量给模板:
from django.shortcuts import render def hello(request): name = "John" return render(request, 'hello.html', {'name': name})
{{ name }}
。{% for item in items %} {% endfor %}
。{{ name|title }}
表示将name变量转换为首字母大写的形式。<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
然后,在其他模板中可以使用extends
关键字来继承并扩展基础模板,如下所示:
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
二、Flask的Jinja2
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
在视图函数中,可以使用render_template
函数来渲染模板并传递数据。例如,我们可以传递一个名为“name”的变量给模板:
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def hello(): name = "John" return render_template('hello.html', name=name)
{{ name }}
。{% for item in items %} {% endfor %}
。{{ name|title }}
表示将name变量转换为首字母大写的形式。<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
然后,在其他模板中使用extends
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
Djangos Vorlagen-Engine bietet eine umfangreiche Syntax für die Handhabung von Logik und Datenpräsentation. Hier sind einige häufig verwendete Vorlagensyntaxbeispiele:
Variablen: Verwenden Sie doppelte geschweifte Klammern, um Variablennamen einzuschließen, z. B. {{ name }}
.
{% für item in items %} {% endfor %}
. 🎜🎜Filter: Sie können Pipe-Symbole und Filter nach Variablen verwenden, um die Ausgabe von Variablen zu verarbeiten. Beispielsweise bedeutet {{ name|title }}
, dass die Namensvariable in eine Großschreibung umgewandelt wird. 🎜extends
in anderen Vorlagen verwendet werden, um die Basisvorlage zu erben und zu erweitern unten gezeigt: 🎜rrreee🎜2. Erstellung und Verwendung der Jinja2-Vorlage von Flask. Ähnlich wie Django verwendet Flask Jinja2 als Vorlagen-Engine. Ebenso können Vorlagen durch die Erstellung einer HTML-Datei erstellt werden. 🎜In Flask werden Vorlagendateien normalerweise im Verzeichnis „templates“ der Anwendung gespeichert. 🎜Zum Beispiel können wir eine Vorlage mit dem Namen „hello.html“ erstellen, wie unten gezeigt: 🎜🎜rrreee🎜In der Ansichtsfunktion können Sie die Funktion render_template
verwenden, um die Vorlage zu rendern und die Daten zu übergeben. Beispielsweise können wir eine Variable mit dem Namen „name“ an die Vorlage übergeben: 🎜rrreee{{ name }}
. 🎜🎜Kontrollstrukturen: Verwenden Sie geschweifte Klammern und Prozentzeichen, um Kontrollstrukturen einzuschließen, z. B. {% für item in items %} {% endfor %}
. 🎜🎜Filter: Sie können auch Pipe-Symbole und Filter nach Variablen verwenden, um die Ausgabe von Variablen zu verarbeiten. Beispielsweise bedeutet {{ name|title }}
, dass die Namensvariable in einen Großbuchstaben umgewandelt wird. 🎜extends
in anderen Vorlagen, um die Basisvorlage zu erben und zu erweitern, wie unten gezeigt : 🎜rrreee🎜 Fazit: 🎜 Sowohl die Template-Engine von Django als auch Jinja2 von Flask bieten leistungsstarke Funktionen zum Erstellen dynamischer Webseiten-Renderings. Es gibt einige geringfügige Unterschiede in der Syntax und Verwendung zwischen den beiden, aber insgesamt sind sie sehr ähnlich. In der tatsächlichen Entwicklung können Sie je nach persönlichen Vorlieben oder Projektanforderungen eine davon verwenden. 🎜🎜Das Obige ist ein tiefgreifendes Verständnis der Template-Engine von Django und von Flasks Jinja2. Durch spezifische Codebeispiele erhalten wir ein klareres Verständnis ihrer Verwendung und Unterschiede. Ich hoffe, dass dieser Artikel Ihnen dabei hilft, diese beiden Vorlagen-Engines zu verstehen und zu verwenden. 🎜Das obige ist der detaillierte Inhalt vonEin tiefer Einblick in die Template-Engine von Django und Jinja2 von Flask. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!