Le framework message intégré de django

1. A propos de django.contrib.messages

Dans Django, django.contrib.messages est un framework intégré qui permet d'ajouter des messages temporaires pour fournir des retours d'information aux utilisateurs, comme des notifications de succès, d'erreur ou d'avertissement. Ces messages sont généralement affichés sur les pages web après des actions spécifiques, comme soumettre un formulaire ou effectuer une opération.

2. Pourquoi utiliser django.contrib.messages ?

Le framework de messages offre une manière simple et propre d'afficher des notifications dans vos applications Django sans avoir besoin de gérer manuellement des données dans la session ou dans les requêtes.

2.1 Configuration de base

Pour utiliser le framework de messages, vous devez inclure les configurations nécessaires dans votre projet.

Applications installées (INSTALLED_APPS) : Veuillez inclure django.contrib.messages dans votre liste d'applications installées :

Middleware :Vérifiez que MessageMiddleware est activé dans la liste des middlewares :

Context Processor : Incluez le context processor django.contrib.messages.context_processors.messages dans la configuration des templates, pour que les messages soient accessibles dans les templates :

2.2 Utilisation des messages dans les vues

Le module django.contrib.messages fournit plusieurs méthodes pour ajouter des messages. Voici les principales :

Ajout d'un message dans une vue : Exemple avec une vue fonctionnelle:

Dans cet exemple :

  1. messages.success : ajoute un message de succès. Le message sera associé à la requête et pourra être affiché dans le prochain template rendu.
  2. Types de messages : Django propose plusieurs niveaux de messages, chacun ayant une fonction correspondante :
    • messages.debug : pour des informations de débogage.
    • messages.info : pour des informations générales.
    • messages.success : pour signaler une opération réussie.
    • messages.warning : pour signaler un avertissement.
    • messages.error : pour signaler une erreur.

Exemple :




3. Affichage des messages dans les templates

Dans vos fichiers HTML, vous pouvez afficher les messages avec une boucle. Par exemple :

Ici :

  1. messages : est automatiquement disponible grâce au context processor.
  2. message.tags : contient les classes CSS basées sur le niveau du message, ce qui est utile pour le style.

4. Personnalisation des niveaux et des styles

4.1 Définir des niveaux personnalisés

Vous pouvez modifier les niveaux de messages par défaut dans votre fichier settings.py :

4.2 Utiliser des classes CSS personnalisées

Django associe des classes CSS aux niveaux de message via la propriété tags. Vous pouvez personnaliser ces associations dans vos styles:

5. Backend des messages

Par défaut, Django utilise le backend SessionStorage pour stocker les messages dans la session de l'utilisateur. Vous pouvez changer cela en configurant MESSAGE_STORAGE dans vos paramètres :

D'autres options incluent :

  1. FallbackStorage : utilise des cookies en cas de problème avec la session.
  2. CookieStorage : stocke les messages dans des cookies.

6. Exemple complet

Voici un exemple d'une vue complète avec gestion des messages et affichage dans le template:

Vue (views.py) :

Template (my_template.html) :




 

 

Younes Derfoufi
CRMEF OUJDA

Leave a Reply