Heim >Backend-Entwicklung >Python-Tutorial >Wie erstelle ich benutzerdefinierte Vorlagen -Tags in Django?

Wie erstelle ich benutzerdefinierte Vorlagen -Tags in Django?

Susan Sarandon
Susan SarandonOriginal
2025-01-27 08:10:10570Durchsuche

Django模板标签:简化数据显示,提升代码复用性

在Django开发中,模板用于将数据动态渲染到HTML页面。本文将介绍如何使用Django模板标签来简化数据显示逻辑,避免在视图中重复编写代码。

Django模板基础示例

假设你有一个简单的课程列表HTML模板:

How to Create Custom Template Tags in Django?

对应的视图代码如下:

How to Create Custom Template Tags in Django?视图将课程数据传递给模板,最终在网页上显示如下:

Frage: Zeigen Sie die Gesamtzahl der Kurse How to Create Custom Template Tags in Django?

Nehmen wir nun an, Sie müssen den Gesamtkurs auf der Webseite anzeigen. Eine Methode besteht darin, der Ansicht Berechnungslogik hinzuzufügen:

Wenn Ihre Website jedoch über mehrere Seiten verfügt (z. B. Blog -Seite, Autorenseite, Dozentseite), muss die Gesamtzahl der Kurse angezeigt werden, und diese Logik benötigt Essenz Zu dieser Zeit war das Django -Vorlagenetikett nützlich.

<code class="language-python">def course_list(request):
    total_courses = Course.objects.count()
    return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})</code>
Was ist eine Vorlagenetika?

Kurz gesagt, das Django -Vorlagenetikett ist eine spezielle Beschriftung, mit der Sie eine benutzerdefinierte Funktion im Django -Vorlagensystem hinzufügen können. Es kann die Wiederverwendung des Codes verbessern und vermeiden, wiederholt dieselbe Logik in der Ansicht zu schreiben.

Warum Vorlagen -Tags verwenden?

Angenommen, Ihre Lehrplananwendung muss die folgenden Daten anzeigen:

Gesamtkursnummer

verfügbare Kurse

    Die Anzahl der registrierten Studenten
  • , anstatt in jeder Ansicht Berechnungslogik hinzuzufügen, können Sie Vorlagen -Tags besser verwenden, um die Operationen zu vereinfachen.
  • Schritt 1: Erstellen Sie eine Vorlagenbezeichnung

Erstellen Sie den Ordner templatetags:

🎜> Ordner erstellen:

Ordner:
  1. Ihre Ordnerstruktur lautet wie folgt: templatetags
Definieren Sie in der Datei die Anzahl der Kurse, die Anzahl der nützlichen Kurse und die Anzahl der registrierten Studenten.

<code>   courses/
       ├── templatetags/
           ├── __init__.py
           └── course_tags.py</code>
Schritt 2: Laden und verwenden Sie die Vorlagenbezeichnung in der Vorlage
  1. Jetzt können Sie diese benutzerdefinierten Tags in der HTML -Vorlage laden und verwenden, um verwandte Daten anzuzeigen. course_tags.py
  2. Beispiel 1: Zeigen Sie die Gesamtsumme des Kurses auf der Kurslistenseite
an.
<code class="language-python">from django import template
from courses.models import Course

register = template.Library()

@register.simple_tag
def total_courses():
    return Course.objects.count()

@register.simple_tag
def available_courses():
    return Course.objects.filter(is_available=True).count()

@register.simple_tag
def enrolled_students(course_id):
    course = Course.objects.get(id=course_id)
    return course.enrolled_students.count()</code>

In der Vorlage laden Sie benutzerdefinierte Tags und verwenden Sie sie, um die Gesamtzahl der Kurse und verfügbaren Kurse anzuzeigen:

Diese Vorlage wird angezeigt:

Gesamtkursnummer course_list.html verfügbare Kurse

<code class="language-html">{% load course_tags %}

<h1>所有课程</h1>

<p>总课程数:{% total_courses %}</p>
<p>可用课程数:{% available_courses %}</p>

{% for course in courses %}
    - {{ course.name }} - {{ course.description }}
{% endfor %}</code>

Beispiel 2: Auf der Seite der Kursdetails die Anzahl der registrierten Schüler

    Auf der Kursdetail -Seite können Sie das Vorlagenetikett
  • verwenden, um die Anzahl der registrierten Schüler in bestimmten Kursen anzuzeigen:
<code class="language-python">def course_list(request):
    total_courses = Course.objects.count()
    return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})</code>

enrolled_students标签接收course.id作为参数,并返回该课程的已注册学生数。

使用模板标签的优势

  1. Nachdem Sie ein gutes Vorlagenetikett definiert haben, können Sie es an mehreren Stellen in der Anwendung wiederverwenden, ohne dieselbe Logik in jeder Ansicht zu wiederholen.
  2. Wenn Sie die Berechnungsmethode der Kursanzahl ändern müssen, müssen Sie das Template -Tag nur aktualisieren, ohne jede Ansicht oder Vorlage zu ändern.

最终输出

How to Create Custom Template Tags in Django?

结论

Dieser Artikel zeigt, wie in Django Vorlagenbezeichnungen verwendet werden, um die Wiederholung der Logik von Kursen und Studentenzählungen in der Ansicht zu vermeiden. Vorlagenbezeichnungen verbessern den Zusammenhang und die Wartbarkeit des Codes.


Kontakt -@syedamahamfahim?

Das obige ist der detaillierte Inhalt vonWie erstelle ich benutzerdefinierte Vorlagen -Tags in Django?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn