OUJOOD.COM
Variables dans les templates
Avant de commencer créez une application dans le projet monmonde que nous avons créé lors des chapitres précédents. Moi je vais nommer cette application « testes » car elle va nous servir de tester les exemples dans ce qui suivra dans cette section sur le langage de Template python.Si vous ne savez pas comment créer une application consultez notre tutoriel Créer une application et le chapitre qui le suit Django Views, ainsi que le tutoriel sur Django Templates.
Dans les templates (modèles) Django, vous pouvez utiliser des variables en les plaçant à l'intérieur de doubles crochets {{ }} :
Exemple template.html :
<h1>Bonjour {{ variable_nom }}, comment allez-vous ?</h1>
Créer une variable dans une vue
La variable Nom dans l'exemple ci-dessus a été envoyée au template via une vue :Le fichier views qui va avec views.py :
from django.http import HttpResponse from django.template import loader def testing(request): template = loader.get_template('template.html') context = { 'variable_nom': 'Robert', } return HttpResponse(template.render(context, request))Comme vous pouvez le constater dans la vue ci-dessus, nous créons un objet nommé context et le remplissons de données, puis nous l'envoyons comme premier paramètre dans la fonction template.render().
Création de variables dans le template (" modèle ")
Vous pouvez également créer des variables directement dans le modèle, en utilisant la balise {% with %} :Exemple template.html :
{% with variable_nom = 'Robert' %} <h1>Bonjour {{ variable_nom }}, comment allez-vous ?</h1>
Données provenant d'un model
L'exemple ci-dessus montre une approche simple de la création et de l'utilisation de variables dans un template.Normalement, la plupart des données externes que vous souhaitez utiliser dans un template, proviennent d'un model.
Nous avons créé un model dans les chapitres précédents, dans lequel nous avons créé une classe appelée Membres, nous allons utiliser ce modèle dans les prochains chapitres de ce tutoriel.
Pour cela on doit importer ce model dans le model de notre application présente.
Ouvrez le model testes/models.py et ajouter le code suivant :
Fichier testes/models.py
from django.db import modelsPour obtenir des données du model Membres, nous devrons l'importer dans le fichier de vues et en extraire les données dans la vue :from membres.models import Membres # Create your models here.
Fichier testes/views.py :
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))Maintenant nous pouvons utiliser les données dans le template :
Fichier testes/template.html :
<table><tr><th>Prénom</th></tr> {% for x in mesmembres %} <tr><td>{{ x.prenom }}</td></tr> {% endfor %} </table>Nous avons utilisé dans cet exemple la balise {%for%} pour extraire les données.
Vous apprendrez plus sur les balises du langage de template dans le chapitre suivant.