Étiquette du modèle django: les données simplifiées montrent, améliorent la réutilisation du code
Dans le développement de Django, le modèle est utilisé pour rendre les données à la page HTML. Cet article présentera comment utiliser les balises de modèle django pour simplifier les données pour afficher la logique, éviter d'écrire à plusieurs reprises le code dans la vue.
En supposant que vous avez un modèle HTML de liste de cours simple:
Le code de vue correspondant est le suivant:
La vue passe les données du curriculum au modèle, et la page Web est enfin affichée comme suit:
Question: montrez le nombre total de cours
Maintenant, supposons que vous deviez afficher le cours total sur la page Web. Une méthode consiste à ajouter une logique de calcul à la vue:Mais si votre site Web a plusieurs pages (telles que la page de blog, la page d'auteur, la page de conférences), le nombre total de cours doit être affiché, et cette logique a besoin d'essence À cette époque, l'étiquette du modèle Django a été utile.
<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>
En bref, l'étiquette de modèle Django est une étiquette spéciale qui vous permet d'ajouter une fonction personnalisée dans le système de modèle Django. Il peut améliorer la réutilisation du code et éviter d'écrire à plusieurs reprises la même logique dans la vue.
Supposons que votre application d'études doit afficher les données suivantes:
Numéro de cours total
Cours disponiblesCréez le dossier TemplateTags:
templatetags
Dans le fichier , définissez le nombre de cours, le nombre de cours utiles et le nombre d'étudiants enregistrés.
<code> courses/ ├── templatetags/ ├── __init__.py └── course_tags.py</code>
course_tags.py
Maintenant, vous pouvez charger et utiliser ces balises personnalisées dans le modèle HTML pour afficher des données connexes. <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>
Ce modèle s'affiche:
Numéro de cours total
course_list.html
Cours disponibles
<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>
Exemple 2: Sur la page Détails du cours, le nombre d'étudiants enregistrés
<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
reçoit course.id
en paramètre et renvoie le nombre d'étudiants inscrits au cours.
Cet article montre à travers des exemples comment utiliser les balises de modèle dans Django pour éviter de dupliquer la logique d'ajout de cours et de nombre d'étudiants dans les vues. Les balises de modèle améliorent la réutilisabilité et la maintenabilité du code.
Contact - @syedamahamfahim ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!