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

Wie erstelle ich benutzerdefinierte Vorlagen -Tags in Django?

Susan Sarandon
Freigeben: 2025-01-27 08:10:10
Original
627 Leute haben es durchsucht

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.

def course_list(request):
    total_courses = Course.objects.count()
    return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})
Nach dem Login kopieren
Nach dem Login kopieren
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>
Nach dem Login kopieren
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.
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()
Nach dem Login kopieren

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

{% load course_tags %}

<h1>所有课程</h1>

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

{% for course in courses %}
    - {{ course.name }} - {{ course.description }}
{% endfor %}
Nach dem Login kopieren

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:
  • def course_list(request):
        total_courses = Course.objects.count()
        return render(request, 'courses.html', {'courses': courses, 'total_courses': total_courses})
    Nach dem Login kopieren
    Nach dem Login kopieren

    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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage