Gestion des données entrantes (Django)
Dans Django, les données entrantes sont toutes les informations envoyées par le client via une requête HTTP.
Django les reçoit dans un objet HttpRequest, qui contient toutes les informations de la requête.
-
Données = informations envoyées par le client
-
Vue (view) = fonction ou classe Python qui reçoit et traite ces données
Comment ça fonctionne ?
Chaque view reçoit un objet request
comme premier paramètre.
Cet objet contient tous les types de données que le client peut envoyer.
Sources principales des données entrantes :
-
Paramètres d’URL
-
Définis dans
urls.py
via des expressions régulières oupath()
-
Exemple :
/users/<int:id>/
→id
est transmis à la view
-
-
Paramètres de requête (QueryString)
-
Exemple :
/users?active=true
→ accessible viarequest.GET['active']
-
-
Corps de la requête (POST/PUT)
-
Données de formulaire :
request.POST['champ']
-
JSON :
json.loads(request.body)
-
-
Fichiers envoyés par le client
-
Accessible via
request.FILES
-
-
Cookies et headers HTTP
-
Cookies :
request.COOKIES['nom_cookie']
-
Headers :
request.headers['Nom-Header']
-
Exemple conceptuel
-
URL : /users/
-
Méthode HTTP : POST
-
Données envoyées : formulaire
{ "name": "Alice", "email": "alice@example.com" }
-
View : récupère les données via
request.POST
, crée un nouvel utilisateur dans la base de données -
Réponse : HTTP 201 + JSON ou redirection vers une page
Ici, Django ne valide pas automatiquement le JSON ou le formulaire. On utilise souvent forms ou serializers (avec Django REST Framework) pour la validation.
Pourquoi c’est important :
-
Permet à l’application de recevoir et traiter les informations envoyées par le client
-
La validation manuelle ou via forms/serializers évite les erreurs et sécurise l’application
-
Facilite la création de fonctionnalités dynamiques (création, modification, suppression de données)
Bonnes pratiques pour la gestion des données entrantes
-
Utiliser Forms ou Django REST Framework Serializers
-
Pour valider et nettoyer les données automatiquement
-
-
Sanitisation des données
-
Nettoyer les entrées pour éviter les injections SQL ou XSS
-
-
Gestion des erreurs
-
Vérifier la présence des paramètres et renvoyer des erreurs HTTP appropriées (400, 404…)
-
-
Limiter la taille des fichiers
-
Pour éviter surcharge ou abus
-
-
Sécuriser l’accès
-
Vérifier l’authentification et les permissions avant de traiter les données
-
En résumé, dans Django :
-
Données entrantes = informations envoyées par le client via URL, query, formulaire, JSON, fichiers…
-
Vue (view) = fonction ou classe qui reçoit et traite les données
-
Forms / Serializers = outils pour validation et conversion automatique
-
Validation, sanitisation et gestion des erreurs = fondamentaux pour une application sécurisée et robuste
Fonctions :
-
Gestion des données entrantes avec Django (exemple)