Formation incluse

Balises et Filtres Django

Priscille mande
Priscille mande
24 Octobre 2024 · 6,66 min lecture
30
Django
Balises et Filtres Django

 


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>

  • {{ value|title }}

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>

  • {{ value|intcomma }}

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

  • {{ value|date:"Y-m-d" }}
    Formate une date selon un format donné.
  • <p>Publié le : {{ article.published_date|date:"Y-m-d" }}</p>
    {{ value|timesince }}
    Affiche le temps écoulé depuis un certain moment.
    

<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>

  • {{ list|first }}

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>

  • {{ value|safe }}

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.

sourcePlus de détails

30

Applaudissez pour montrer votre soutien

Priscille mande

Priscille mande

3 Suivez-nous · Rédacteur pour Django

Je suis une jeune passionnée par le domaine de l'informatique, toujours prête à explorer de nouvelles technologies et à relever des défis.