Aller au contenu principal

Comprendre Django

Repères utiles :

info

Cette note explique ce qu'est Django, à quoi il sert, pourquoi il est souvent choisi pour construire des backends solides, et dans quels cas il faut au contraire remettre ce choix en question.

1. Pourquoi commencer par Django

Avant de parler de Django REST Framework, il faut comprendre Django lui-même.

Pourquoi ? Parce que DRF n'est pas un monde séparé. DRF repose sur Django. Si on ne comprend pas le socle, on comprend mal ce que DRF ajoute.

Autrement dit :

  • Django pose la base du projet backend
  • DRF ajoute une manière plus structurée de construire des APIs dessus

2. Définition simple

Django est un framework web Python.

Dit autrement, c'est un ensemble d'outils et de conventions qui aide à construire des applications web backend sans devoir réinventer les éléments essentiels à chaque projet.

Avec Django, on peut par exemple gérer :

  • des routes
  • des requêtes HTTP
  • une base de données
  • des modèles de données
  • des formulaires
  • des utilisateurs
  • une interface d'administration
  • des permissions
  • une logique métier structurée

3. En langage très simple : à quoi sert Django ?

Imaginons que tu veuilles créer le cerveau serveur d'une application. Ce cerveau doit pouvoir :

  • recevoir des demandes
  • stocker des données
  • appliquer des règles métier
  • renvoyer des réponses propres
  • gérer des utilisateurs

Tu pourrais tout coder à la main. Mais très vite, tu devrais reconstruire toi-même :

  • la gestion des URLs
  • les connexions à la base de données
  • la sécurité minimale
  • l'authentification
  • l'administration interne
  • la structure du projet

Django sert précisément à t'éviter cela.

4. Le vrai problème que Django résout

Le besoin derrière Django n'est pas seulement :

“je veux faire un site web.”

Le besoin réel est souvent plutôt :

“je veux construire une application backend sérieuse, structurée et maintenable, avec des données, des utilisateurs, des règles et du temps long.”

Django est donc particulièrement à l'aise quand ton projet contient :

  • des données relationnelles
  • des utilisateurs
  • une logique métier claire
  • un besoin de structure
  • une volonté de maintenir le projet dans la durée

5. Ce que Django apporte concrètement

5.1 Une structure de projet

Django t'aide à éviter le chaos. Il propose une manière organisée de découper le backend en projets, applications, modèles, vues, URLs, templates, admin, etc.

5.2 Un ORM

L'ORM permet de manipuler la base de données à travers des objets Python plutôt que d'écrire du SQL partout.

Par exemple, au lieu de penser uniquement en tables et requêtes SQL, tu peux penser en objets métier :

  • utilisateur
  • produit
  • commande
  • facture
  • rapport

5.3 Une admin intégrée

C'est un des grands avantages historiques de Django. Tu peux obtenir rapidement une interface d'administration pour visualiser, modifier et gérer les données.

5.4 Une base solide pour l'authentification

Django sait déjà gérer beaucoup de briques utiles :

  • utilisateurs
  • mots de passe
  • sessions
  • groupes
  • permissions

5.5 Une philosophie “batteries included”

Cette expression veut dire que Django vient avec beaucoup de briques prêtes à l'emploi. L'idée n'est pas de te forcer à tout utiliser, mais de t'éviter de repartir de zéro sur des besoins très classiques.

6. Quand Django est un très bon choix

Django est souvent un très bon choix si tu construis :

  • une application métier
  • un SaaS
  • un back-office
  • un backend pour une app web ou mobile
  • un produit avec beaucoup de données relationnelles
  • un système avec utilisateurs, rôles et permissions
  • une application qui doit durer et rester lisible

En résumé : si ton projet ressemble à un vrai produit backend structuré, Django mérite sérieusement d'être considéré.

7. Quand Django n'est pas forcément le meilleur choix

Il ne faut pas transformer Django en réponse automatique à tout.

Django peut être moins adapté si :

  • tu veux juste un service extrêmement petit et minimal
  • ton besoin est ultra simple et très limité
  • ton projet est dominé par du temps réel très poussé
  • tu veux un style de framework beaucoup plus minimaliste
  • tu n'as quasiment pas de logique métier ni de données relationnelles

Important : cela ne veut pas dire que Django est mauvais dans ces cas. Cela veut dire que la valeur ajoutée de Django y est parfois moins évidente.

8. Django n'est pas seulement “pour faire des sites”

Beaucoup de débutants associent Django à :

  • des pages HTML rendues côté serveur
  • des blogs
  • des sites classiques

C'est une vision incomplète.

Oui, Django peut servir à cela. Mais Django peut aussi servir à construire :

  • un backend API
  • un système d'administration interne
  • une plateforme métier
  • un produit B2B
  • un backend de données pour un frontend séparé

C'est précisément pour cela qu'il reste très pertinent aujourd'hui.

9. Comment penser Django mentalement

Une bonne manière de comprendre Django est de le voir comme un cadre de travail pour construire un backend propre.

Ce cadre t'aide à répondre à des questions comme :

  • quelles sont mes entités métier ?
  • comment les stocker ?
  • qui a le droit de voir quoi ?
  • comment recevoir une requête ?
  • comment produire une réponse ?
  • comment garder le projet organisé ?

10. Les grands blocs de Django

Sans entrer encore dans tous les détails, il faut déjà connaître quelques briques.

Modèles

Ils décrivent les objets importants de ton système et leur structure.

Vues

Elles reçoivent les requêtes et décident quoi faire.

URLs

Elles relient une adresse à une logique de traitement.

Admin

Elle permet de gérer rapidement des données dans une interface prête à l'emploi.

Authentification

Elle permet de savoir qui est connecté.

Permissions

Elles permettent de savoir ce qu'un utilisateur a le droit de faire.

ORM

Il sert à dialoguer avec la base de données proprement.

Tu retrouveras ces briques dans Les briques de base de Django DRF.

11. Django et la logique métier

Un point important : Django ne sert pas seulement à brancher une base de données à des routes.

Le vrai intérêt apparaît quand tu as une logique métier. Par logique métier, on entend les règles propres à ton domaine.

Exemples :

  • une commande ne peut passer au statut “expédiée” que si elle est payée
  • un manager peut voir l'équipe qu'il supervise mais pas toutes les équipes
  • un rapport est visible seulement par son auteur et certains rôles
  • un dossier est modifiable jusqu'à une certaine étape du workflow

Django est à l'aise pour accueillir ce type de règles.

12. L'intuition “produit durable”

Si tu devais retenir une intuition, ce serait celle-ci :

Django est très fort quand tu construis un backend qui doit rester compréhensible, organisé et exploitable dans le temps.

Autrement dit, il est souvent moins impressionnant dans les slogans que certains frameworks plus “légers”, mais il est très rassurant quand ton projet grandit vraiment.

13. Erreurs fréquentes dans la compréhension de Django

Erreur 1 — Croire que Django est uniquement fait pour des pages HTML

C'est faux. Django peut aussi servir de socle backend pour une API moderne.

Erreur 2 — Croire que Django est trop gros donc forcément mauvais

Un framework plus structuré n'est pas “mauvais” parce qu'il est plus riche. Il faut regarder si cette richesse correspond au projet.

Erreur 3 — Croire que Django résout l'architecture à ta place

Django aide beaucoup, mais il ne remplace pas la réflexion. Un mauvais découpage métier reste mauvais même dans Django.

Erreur 4 — Confondre rapidité de démarrage et simplicité durable

Il est parfois facile de démarrer très vite avec un outil minimal. Mais maintenir un projet réel sur plusieurs mois est une autre histoire. Django est souvent fort sur cette deuxième dimension.

14. Mini carte mentale pour retenir Django

Tu peux retenir Django comme l'union de quatre idées :

  • structure
  • productivité
  • base de données
  • durabilité

Si ton besoin active fortement ces quatre dimensions, Django devient très intéressant.

15. Ce qu'il faut comprendre avant de passer à DRF

Avant de passer à Comprendre Django REST Framework, il faut retenir ceci :

  • Django est déjà capable de faire beaucoup de choses seul
  • DRF ne remplace pas Django
  • DRF spécialise Django pour la construction d'APIs plus confortables et mieux structurées

Donc la bonne question n'est pas :

“Django ou DRF ?”

La bonne question est plutôt :

“J'utilise Django comme base. Est-ce que j'ai besoin de DRF pour mieux construire mon API ?”

16. Résumé final

Django est un framework web Python très structurant. Il est particulièrement pertinent lorsque l'on veut construire un backend sérieux avec :

  • des données
  • des utilisateurs
  • des règles métier
  • une base solide de sécurité
  • une logique de projet durable

Il ne faut ni le réduire à “un framework pour des sites classiques”, ni l'utiliser sans réflexion sur le besoin réel.

L'idée clé à retenir est simple :

Django est un excellent socle quand on veut construire un backend organisé, maintenable et orienté produit.

17. Pour aller plus loin

La suite logique est :