OUJOOD.COM
Template : les balises (Tags)
Dans les templates Django, vous pouvez effectuer une logique de programmation similaire à l'exécution d'instructions if et de boucles for.Ces mots-clés, if, for et autre sont appelés "balises de template" dans Django.
Pour exécuter les balises de template, nous les entourons de parenthèses {% %}.
La Syntaxe:
{% nom de la balise %}
Exemple : Les balises sont entourées de {% et %} comme ceci :{% csrf_token %}La plupart des balises acceptent des arguments, par exemple :
{% cycle 'odd' 'even' %}Exemple:
Fichier testes/views.py :
from django.http import HttpResponse from django.template import loader def testing(request): template = loader.get_template('template.html') context = { 'ma_variable': 1, } return HttpResponse(template.render(context, request))Fichier testes/templte.html
<!DOCTYPE html> <html> <body> {% if ma_variable == 1 %} <h1>Bonjour</h1> {% else %} <h1>Au revoir</h1> {% endif %} <p>Dans le fichier views.py, vous pouvez voir à quoi ressemble la variable ma_variable.</p> </body> </html>
Code Django
Les balises de template sont un moyen d'indiquer à Django qu'il y a autre chose que du simple HTML.Les balises template nous permettent d'effectuer un peu de programmation sur le serveur avant d'envoyer du HTML au client.
Fichier testes/template.html :
Fichier testes/template.html : 📋 Copier le code
<!DOCTYPE html> <html> <body> <ul> {% for x in mesmembres %} <li>{{ x.prenom }}</li> {% endfor %} </ul> <p>Dans views.py, vous pouvez voir comment importer et récupérer les membres de la base de données.</p> </body> </html>
fichier testes/views.py 📋 Copier le code
from django.http import HttpResponse, HttpResponseRedirect from django.template import loader from .models import Membres def testing(request): mesmembres = Membres.objects.all().values() template = loader.get_template('template.html') context = { 'mesmembres': mesmembres, } return HttpResponse(template.render(context, request))Dans les chapitres suivants, vous découvrirez les balises de template les plus courantes.
Liste de toutes les balises de template :
Balise | Description |
---|---|
autoescape | Indique si le mode d'évasion automatique est activé ou non. |
block | Spécifie une section de bloc |
comment | Spécifie une section de commentaires |
csrf_token | Protège les formulaires contre les attaques de type "Cross Site Request Forgeries". |
cycle | Spécifie le contenu à utiliser dans chaque cycle d'une boucle |
debug | Spécifie les informations de débogage |
extends | Spécifie un modèle parent |
filter | Filtre le contenu avant de le renvoyer |
firstof | Renvoie la première variable non vide |
for | Spécifie une boucle for |
if | Spécifie une instruction if |
ifchanged | Utilisé dans les boucles for. Ne renvoie un bloc que si une valeur a changé depuis la dernière itération. |
include | Spécifie le contenu/modèle inclus |
load | Charge les balises de modèle à partir d'une autre bibliothèque |
lorem | Affiche un texte aléatoire |
now | Affiche la date et l'heure actuelles |
regroup | Trie un objet par groupe |
resetcycle | Utilisé dans les cycles. Réinitialise le cycle |
spaceless | Supprime les espaces entre les balises HTML |
templatetag | Produit une balise de template spécifiée |
url | Renvoie la partie URL absolue d'une URL |
verbatim | Spécifie le contenu qui ne doit pas être rendu par le moteur de modèle. |
widthratio | Calcule une valeur de largeur basée sur le rapport entre une valeur donnée et une valeur max. |
with | Spécifie une variable à utiliser dans le bloc |