Introduction
Le framework Django, basé sur Python, fournit des outils puissants tels que les balises et les filtres pour manipuler et afficher les données dans les templates de manière dynamique et flexible. Cet article explore les balises et filtres intégrés de Django, leurs utilisations, ainsi que des exemples pour mieux les comprendre.
Développement
Définition
-
Les balises : Ce sont des instructions logiques que l'on peut utiliser dans les templates Django pour contrôler le flux d'exécution, inclure des templates supplémentaires, créer des boucles ou ajouter des conditions.
-
Les filtres : Ils servent à modifier ou formater des données avant leur affichage. Ils s'appliquent aux variables à l'aide du caractère pipe (|). Par exemple, un filtre permet de formater une date, convertir une chaîne en majuscules ou tronquer du texte.
I. Les Balises
1. Balises de contrôle de flux
- {% if %}
Permet d'exécuter une condition directement dans le template.
{% if user.is_authenticated %} <p>Bienvenue, {{ user.username }} !</p> {% else %} <p>Veuillez vous connecter.</p> {% endif %}
- {% for %}
Utilisée pour itérer sur une liste ou un objet.
<ul> {% for item in langage_programmation %} <li>{{ item }}</li> {% endfor%} </ul>
- {% empty %}
Permet de gérer les cas où la liste est vide.
<ul> {% for fruit in fruits %} <li>{{ fruit }}</li> {% empty %}
<p>Aucun élément trouvé.</p> {% endfor %} </ul>
2. Balises d'inclusion
- {% include %}
Permet d'inclure un autre template dans le template principal.
{% include 'navbar.html' %}
- {% extends %}
Permet d'étendre un template parent pour réutiliser une structure de base.
{% extends 'base.html' %}
- {% block %}
Définit un bloc de contenu qui peut être remplacé dans les templates enfants.
{% block content %} <h1>Page d'accueil</h1> {% endblock %}
3. Balises de gestion de fichiers
- {% load %}
Permet de charger des filtres ou des fichiers personnalisés dans un template.
{% load my_filter %} <p>{{ "Bonjour"|add_suffix:", tout le monde!" }}</p>
II. Les Filtres
1. Filtres de formatage de texte
- {{ value|lower }}
Convertit une chaîne en minuscules.
<p>{{ username|lower }}</p>
- {{ value|upper }}
Convertit une chaîne en majuscules.
<p>{{ username|upper }}</p>
Convertit une chaîne en format titre (majuscule pour chaque mot).
<p>{{ book_title|title }}</p>
2. Filtres de formatage de nombres
- {{ value|floatformat }}
Formate un nombre flottant avec un nombre spécifique de décimales.
<p>{{ price|floatformat:2 }}</p>
Ajoute des virgules dans les nombres pour les rendre plus lisibles.
{{ value|intcomma }}
Ajoute des virgules dans les nombres pour les rendre plus lisibles.
<p>{{ large_number|intcomma }}</p>
3. Filtres de formatage de dates
<p>Publié il y a : {{ article.published_date|timesince }}</p>
4. Filtres de manipulation de listes
- {{ list|slice:":5" }}
Renvoie une tranche de la liste.
<p>Les 5 premiers éléments : {{ item_list|slice:":5" }}</p>
Renvoie le premier élément de la liste.
<p>Premier élément : {{ item_list|first }}</p>
5. Filtres de sécurité
- {{ value|escape }}
Échappe les caractères spéciaux dans une chaîne pour la rendre sûre à afficher.
<p>{{ user_input|escape }}</p>
Marque une chaîne comme sûre pour le rendu HTML.
<p>{{ html_content|safe }}</p>
Conclusion
Les balises et filtres intégrés de Django permettent de rendre les templates dynamiques et interactifs tout en gardant le code propre et organisé. Leur utilisation permet non seulement de contrôler l'affichage des données, mais aussi de manipuler celles-ci efficacement.
source: Plus de détails