Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Membuat Tag Templat Tersuai di Django?

Bagaimana untuk Membuat Tag Templat Tersuai di Django?

Susan Sarandon
Lepaskan: 2025-01-27 08:10:10
asal
538 orang telah melayarinya

Teg templat Django: memudahkan paparan data dan meningkatkan kebolehgunaan semula kod

Dalam pembangunan Django, templat digunakan untuk memaparkan data secara dinamik ke dalam halaman HTML. Artikel ini akan memperkenalkan cara menggunakan teg templat Django untuk memudahkan logik paparan data dan mengelakkan kod pendua dalam paparan.

Contoh asas templat Django

Andaikan anda mempunyai templat HTML senarai kursus yang mudah:

How to Create Custom Template Tags in Django?

Kod paparan yang sepadan adalah seperti berikut:

How to Create Custom Template Tags in Django?

Paparan

menghantar data kursus ke templat, yang akhirnya dipaparkan pada halaman web seperti berikut:

How to Create Custom Template Tags in Django?

Soalan: Tunjukkan jumlah bilangan kursus

Sekarang, katakan anda perlu memaparkan jumlah bilangan kursus pada halaman web. Satu cara ialah menambah logik pengiraan dalam paparan:

<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>
Salin selepas log masuk
Salin selepas log masuk

Tetapi jika tapak web anda mempunyai berbilang halaman (seperti halaman blog, halaman pengarang, halaman pengajar) yang semuanya perlu memaparkan jumlah kursus, anda perlu mengulang logik ini dalam setiap paparan, yang akan membawa kepada kod berlebihan dan sukar untuk dikekalkan. Pada masa ini, teg templat Django berguna.

Apakah itu teg templat?

Ringkasnya, teg templat Django ialah teg khas yang membolehkan anda menambah fungsi tersuai pada sistem templat Django. Ia boleh meningkatkan kebolehgunaan semula kod dan mengelakkan menulis logik yang sama berulang kali dalam paparan.

Mengapa menggunakan teg templat?

Andaikan apl kursus anda perlu memaparkan data berikut:

  • Jumlah bilangan kursus
  • Bilangan kursus yang tersedia
  • Bilangan pelajar berdaftar

Daripada menambah logik pengiraan dalam setiap paparan, gunakan teg templat untuk memudahkan perkara.

Langkah 1: Buat teg templat

  1. Buat folder templatetags: Buat templatetagsfolder di bawah apl kursus anda:

Struktur folder anda adalah seperti berikut:

<code>   courses/
       ├── templatetags/
           ├── __init__.py
           └── course_tags.py</code>
Salin selepas log masuk
  1. Dalam fail course_tags.py, tentukan teg templat yang mengira jumlah bilangan kursus, bilangan kursus yang tersedia dan bilangan pelajar berdaftar:
<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>
Salin selepas log masuk

Langkah 2: Muatkan dan gunakan teg templat dalam templat

Kini anda boleh memuatkan dan menggunakan teg tersuai ini dalam templat HTML anda untuk memaparkan data yang berkaitan.

Contoh 1: Paparkan jumlah bilangan kursus pada halaman senarai kursus

Dalam templat course_list.html, muatkan teg tersuai dan gunakannya untuk memaparkan jumlah bilangan kursus dan bilangan kursus yang tersedia:

<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>
Salin selepas log masuk

Templat ini akan memaparkan:

  • Jumlah bilangan kursus
  • Bilangan kursus yang tersedia

Contoh 2: Paparkan bilangan pelajar berdaftar pada halaman butiran kursus

Pada halaman butiran kursus, anda boleh menggunakan tag templat enrolled_students untuk memaparkan bilangan pelajar berdaftar untuk kursus tertentu:

<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>
Salin selepas log masuk
Salin selepas log masuk

tag menerima enrolled_students sebagai parameter dan mengembalikan bilangan pelajar berdaftar dalam kursus. course.id

kelebihan menggunakan label templat

    Selepas menentukan label templat yang baik, anda boleh menggunakannya semula di beberapa tempat dalam aplikasi tanpa mengulangi logik yang sama dalam setiap pandangan.
  1. Jika anda perlu mengubah suai kaedah pengiraan kiraan kursus, anda hanya perlu mengemas kini tag templat tanpa mengubah suai setiap paparan atau templat.
output akhir

Kesimpulan How to Create Custom Template Tags in Django? Artikel ini menunjukkan cara menggunakan label templat di Django untuk mengelakkan mengulangi logik kursus dan kiraan pelajar dalam pandangan. Label templat meningkatkan reassemblet dan pemeliharaan kod.

Hubungi -@syedamahamfahim?

Atas ialah kandungan terperinci Bagaimana untuk Membuat Tag Templat Tersuai di Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan