Gestion des réponses (Django)
Dans Django, une réponse correspond à ce que votre application renvoie au client après avoir traité une requête HTTP.
Chaque view (équivalent de l’endpoint) génère une HttpResponse ou un objet dérivé, qui contient les données envoyées au client.
-
View : fonction ou classe Python qui traite la requête.
-
Réponse : ce que Django renvoie au client (texte, JSON, HTML…).
-
Code HTTP : indique le succès ou l’échec de la requête (200, 201, 404…).
Comment ça fonctionne ?
-
Le client envoie une requête à une URL définie dans le fichier
urls.py
. -
Django appelle la view associée à cette URL.
-
La view traite la requête et retourne un objet
HttpResponse
(ou dérivé) avec les données et le code HTTP. -
Django envoie cette réponse au client.
Exemple conceptuel
-
URL :
/users/
-
View Python : récupère la liste des utilisateurs depuis la base de données.
-
Méthode HTTP : GET
-
Réponse : JSON contenant la liste des utilisateurs + code HTTP 200
Ici, la view /users/
transforme les données en réponse compréhensible par le client.
Types de réponses dans Django
-
HttpResponse : pour renvoyer du texte brut ou HTML.
-
JsonResponse : pour renvoyer des données JSON (très utilisé pour les APIs).
-
HttpResponseRedirect : pour rediriger le client vers une autre URL.
-
FileResponse : pour envoyer un fichier en téléchargement.
-
TemplateResponse : pour renvoyer des pages HTML avec templates Django.
Codes HTTP
-
200 : succès
-
201 : création réussie
-
404 : ressource non trouvée
-
403 : accès interdit
-
500 : erreur serveur
On peut les définir directement dans l’objet HttpResponse
ou JsonResponse
.
Pourquoi c’est important
-
Permet aux clients de comprendre le résultat de la requête.
-
Facilite le débogage grâce à des codes et messages clairs.
-
Rend l’application compatible avec d’autres services (REST APIs, front-end JS…).
Bonnes pratiques
-
Toujours utiliser JsonResponse pour les APIs pour avoir un format structuré.
-
Spécifier le code HTTP adapté selon le résultat de la requête.
-
Gérer les erreurs avec
raise Http404
ouPermissionDenied
pour des réponses claires. -
Ne jamais renvoyer directement des objets Python non sérialisés (utiliser JSON ou templates).
En résumé
-
La réponse est ce que Django envoie au client après traitement.
-
Elle peut être JSON, HTML, texte ou fichier.
-
Les codes HTTP indiquent le statut de la requête.
-
Une gestion claire des réponses rend l’API ou l’application fiable et maintenable.
Fonctions :
-
Gestion des réponses avec Django (exemple)