logo oujood
🔍

Gérer les enregistrements : Ajouter, Modifier et Supprimer

Passez du shell Python à une véritable interface web pour manipuler vos données Membres en toute simplicité.

OUJOOD.COM

Manipuler des données via le shell Python, c'est bien pour tester, mais vos utilisateurs ne le feront jamais. Pour rendre votre application interactive, vous devez créer une interface capable de créer, lire, modifier et supprimer des informations. C'est ce qu'on appelle le CRUD.

Ajouter un enregistrement

On commence par le bouton d'ajout. C'est la porte d'entrée. Nous allons modifier notre liste principale pour y intégrer un lien vers le formulaire de création.

Le Template de liste

Ouvrez votre fichier membres/templates/index.html et ajoutez un lien d'action en bas de page.

  📋 Copier le code

<!DOCTYPE html>
<html>
<body>
<h1>Mes membres</h1>
<table border="1">
  <tr><th>ID</th><th>Prénom</th><th>Nom</th><th>Email</th></tr>
  {% for x in mesmembres %}
  <tr>
    <td>{{ x.id }}</td>
    <td>{{ x.prenom }}</td>
    <td>{{ x.nom }}</td>
    <td>{{ x.mail }}</td>
  </tr>
  {% endfor %}
</table>
<p><a href="ajout/">Ajouter un membre</a></p>
</body>
</html>

Le formulaire de création

Créez maintenant ajout.html. Ce fichier contiendra les champs nécessaires pour capturer les informations du nouveau membre.

  📋 Copier le code

<h1>Ajouter un membre</h1>
<form action="ajouterrecord/" method="post">
  {% csrf_token %}
  Prénom :<br><input name="prenom"><br>
  Nom :<br><input name="nom"><br>
  Email :<br><input name="mail"><br><br>
  <input type="submit" value="Enregistrer">
</form>

Sécurité : La balise {% csrf_token %} est obligatoire. Elle protège votre site contre les injections malveillantes lors des envois en méthode POST.

Logique et Routage

Côté views.py, nous avons besoin de deux fonctions : une pour afficher le formulaire et une pour traiter les données reçues.

  📋 Copier le code

from django.http import HttpResponse, HttpResponseRedirect
from django.urls import reverse
from .models import Membres

# Affiche le formulaire
def ajout(request):
    return render(request, 'ajout.html')

# Traite l'enregistrement
def ajouterrecord(request):
    x = request.POST['prenom']
    y = request.POST['nom']
    z = request.POST['mail']
    membre = Membres(prenom=x, nom=y, mail=z)
    membre.save()
    return HttpResponseRedirect(reverse('index'))

Supprimer un enregistrement

Pour la suppression, pas besoin de nouveau template. On va simplement ajouter une colonne "Action" dans notre tableau principal avec un lien pointant vers l'ID du membre.

  📋 Copier le code

# Dans index.html, ajoutez cette cellule :
<td><a href="delete/{{ x.id }}">Supprimer</a></td>

# Dans views.py :
def delete(request, id):
    membre = Membres.objects.get(id=id)
    membre.delete()
    return HttpResponseRedirect(reverse('index'))

Mettre à jour les données

La mise à jour est un mélange des deux étapes précédentes : on récupère l'objet existant pour pré-remplir un formulaire, puis on enregistre les modifications.

  📋 Copier le code

def update(request, id):
    monmembre = Membres.objects.get(id=id)
    return render(request, 'update.html', {'monmembre': monmembre})

def editer(request, id):
    membre = Membres.objects.get(id=id)
    membre.prenom = request.POST['prenom']
    membre.nom = request.POST['nom']
    membre.mail = request.POST['mail']
    membre.save()
    return HttpResponseRedirect(reverse('index'))

Par carabde | Mis à jour le 09/05/2026