oujood.com

Balise de template (modèle) en Django

Les balises vous permettent d'effectuer les opérations suivantes : condition if, boucle for, héritage de modèles et plus encore.
Les balises fournissent une logique dans le processus de traitement des données. Par exemple, une balise peut produire du contenu, servir de structure de contrôle, par exemple une instruction 'if' ou une boucle 'for', récupérer du contenu dans une base de données ou même permettre l'accès à d'autres balise de template(modèle).

chercher |

Dans ce tutoriel nous utilisons l'application testes créée dans le chapitre précédent.

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 :

  Copier le code

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

  Copier le code

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




Voir aussi nos tutoriel :

Balise time

Définit une date / heure

fonction ord, ord

Retourne le code ASCII d'un caractère

Balise saut de ligne

Définit un saut de ligne simple