XSLT transformation
Notre table Membres est vide, nous devons y ajouter des membres.Django nous permet d'interagir avec ses modèles de base de données.
Donc on peut ajouter, supprimer, modifier et interroger des objets, à l'aide d'une base de données.
python manage.py shellLa sortie est :
(env_site) C:\Users\Admin\env_site\monprojet>python manage.py shell Python 3.10.7 (tags/v3.10.7:6cc6b13, Sep 5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>>En bas, après les trois >>>, écrivez ce qui suit :
from membres.models import MembresAppuyez sur [enter] et écrivez ceci pour regarder la table vide des membres :
>>> Membres.objects.all()Cela devrait vous donner un objet QuerySet vide, comme ceci :
<QuerySet []>Un QuerySet est une collection de données provenant d'une base de données.
>>> membre = Membres(prenom='Emil', nom='Refsnes',mail='emil@monemail.com') membre.save()La sortie est :
>>> membre = Membres(prenom='Emil', nom='Refsnes',mail='emil@monemail.com') File "<console>", line 1 >>> membre.save() >>>Exécutez la commande suivante pour voir si la table Membres contient un membre :
>>> Membres.objects.all().values()La sortie est :
<QuerySet [{'id': 1, 'prenom': 'Emil', 'nom': 'Refsnes', 'mail': 'emil@monemail.com'}]> >>>
>>> membre1 = Membres(prenom='Martin', nom='Dubois',mail='martin@monemail.com') membre2 = Membres(prenom='Bernard', nom='Durand',mail='Bernard@monemail.com') membre3 = Membres(prenom='Robert', nom='Morin',mail='Robert@monemail.com') membre4 = Membres(prenom='Salah', nom='Bailly',mail='Bailly@monemail.com') membres_list = [membre1, membre2, membre3, membre4] for x in membres_list: x.save()La table des membres compte maintenant 5 membres :
<QuerySet [{'id': 1, 'prenom': 'Emil', 'nom': 'Refsnes', 'mail': 'emil@monemail.com'},
{'id': 2, 'prenom': 'Martin', 'nom': 'Dubois', 'mail': 'martin@monemail.com'},
{'id': 3, 'prenom': 'Bernard', 'nom': 'Durand', 'mail': 'Bernard@monemail.com'},
{'id': 4, 'prenom': 'Robert', 'nom': 'Morin', 'mail': 'Robert@monemail.com'},
{'id': 5, 'prenom': 'Salah', 'nom': 'Bailly', 'mail': 'Bailly@monemail.com'}]> >>>
from django.http import HttpResponse from django.template import loader def index(request): template = loader.get_template('monpremier.html') return HttpResponse(template.render())Changez le contenu du fichier views.py pour qu'il soit comme celui-ci :
from django.http import HttpResponse from django.template import loader from .models import Membres def index(request): mesmembres = Membres.objects.all().values() resultat = "" for x in mesmembres: resultat += x["prenom"] return HttpResponse(resultat)Comme vous pouvez le constater à la ligne 3, le modèle Membres est importé, et le View Index fait ce qui suit :
quit()Naviguez vers le dossier /monprojet/ et tapez ceci pour démarrer le serveur :
python manage.py runserverDans la fenêtre du navigateur, tapez 127.0.0.1:8000/membres/ dans la barre d'adresse.
<!DOCTYPE html> <html> <head> <title>Liste des membres</title> </head> <body> <h1>Mes membres</h1> <table border="1" style="border-collapse: collapse;"><tr><th> ID </th> <th> Prénom </th><th> Nom </th><th>Email</th></tr> {% for x in mesmembers %} <tr> <td>{{ x.id }}</td> <td>{{ x.prenom }}</td> <td>{{ x.nom }}</td> <td>{{ x.mail }}</td> </tr> {% endfor %} </table> </body> </html>Vous avez remarqué les parties {% %} et {{ }} ? Il s'agit de balises spéciales qu'on nomme balises de modèle(templates tags).
from django.http import HttpResponse from django.template import loader from .models import Membres def index(request): mesmembers = Membres.objects.all().values() template = loader.get_template('index.html') context = { 'mesmembers': mesmembers, } return HttpResponse(template.render(context, request))La vue index effectue les opérations suivantes :