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 |