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.


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 :

  1. Paramètres d’URL

    • Définis dans urls.py via des expressions régulières ou path()

    • Exemple : /users/<int:id>/id est transmis à la view

  2. Paramètres de requête (QueryString)

    • Exemple : /users?active=true → accessible via request.GET['active']

  3. Corps de la requête (POST/PUT)

    • Données de formulaire : request.POST['champ']

    • JSON : json.loads(request.body)

  4. Fichiers envoyés par le client

    • Accessible via request.FILES

  5. Cookies et headers HTTP

    • Cookies : request.COOKIES['nom_cookie']

    • Headers : request.headers['Nom-Header']


Exemple conceptuel

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 :


Bonnes pratiques pour la gestion des données entrantes

  1. Utiliser Forms ou Django REST Framework Serializers

    • Pour valider et nettoyer les données automatiquement

  2. Sanitisation des données

    • Nettoyer les entrées pour éviter les injections SQL ou XSS

  3. Gestion des erreurs

    • Vérifier la présence des paramètres et renvoyer des erreurs HTTP appropriées (400, 404…)

  4. Limiter la taille des fichiers

    • Pour éviter surcharge ou abus

  5. Sécuriser l’accès

    • Vérifier l’authentification et les permissions avant de traiter les données


En résumé, dans Django :

Fonctions :

  • Gestion des données entrantes avec Django (exemple)