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.
Andaikan anda mempunyai templat HTML senarai kursus yang mudah:
Kod paparan yang sepadan adalah seperti berikut:
Paparanmenghantar data kursus ke templat, yang akhirnya dipaparkan pada halaman web seperti berikut:
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>
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.
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.
Andaikan apl kursus anda perlu memaparkan data berikut:
Daripada menambah logik pengiraan dalam setiap paparan, gunakan teg templat untuk memudahkan perkara.
templatetags
folder di bawah apl kursus anda: Struktur folder anda adalah seperti berikut:
<code> courses/ ├── templatetags/ ├── __init__.py └── course_tags.py</code>
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>
Kini anda boleh memuatkan dan menggunakan teg tersuai ini dalam templat HTML anda untuk memaparkan data yang berkaitan.
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>
Templat ini akan memaparkan:
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>
tag menerima enrolled_students
sebagai parameter dan mengembalikan bilangan pelajar berdaftar dalam kursus. course.id
Kesimpulan 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!