Application complète avec Django : de la conception à la production

Application complète avec Django est un cours de niveau avancé de 5 leçons (environ 5 h 38), avec 16 exercices et 15 questions de quiz. Prérequis : Django fondamentaux, Mise en page responsive (Flexbox, Grid). Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.

  • Python pour le web
  • Avancé
  • 5 leçons
  • 5 h 38
  • 16 exercices
  • Environnement de projet complet (phase 2)

Le cours en bref

Ce cours avancé guide la réalisation d'une application web complète avec Django, sur le modèle d'un outil de gestion de projets. Tu structures le projet et sa configuration, sécurises les comptes et les droits d'accès, optimises l'ORM, construis une interface CRUD responsive enrichie de JavaScript, puis testes et prépares la mise en production.

Ce que tu sauras faire

  • Structurer un projet Django professionnel configuré par variables d'environnement, avec un modèle utilisateur personnalisé
  • Mettre en place l'authentification et un contrôle d'accès par objet et par rôle
  • Modéliser des relations complexes et éliminer les requêtes N+1
  • Construire une interface CRUD paginée avec les vues génériques, des endpoints JSON et fetch
  • Tester l'application, durcir sa configuration et la déployer avec Gunicorn, PostgreSQL et WhiteNoise

Programme des 5 leçons

    • Découper un projet en applications cohérentes et définir un modèle utilisateur personnalisé dès le départ
    • Externaliser la configuration (secrets, DEBUG, hôtes, base de données) dans des variables d'environnement
    • Organiser gabarits, fichiers statiques et fichiers téléversés

    Architecture d'un projetConfiguration par environnementModèle utilisateur personnalisé

  1. 02

    Authentification et autorisations

    20 min
    • Mettre en place connexion, déconnexion et inscription avec les outils de django.contrib.auth
    • Protéger des vues avec login_required, LoginRequiredMixin ou LoginRequiredMiddleware
    • Appliquer des autorisations : permissions, groupes et contrôle d'accès par objet

    AuthentificationPermissionsContrôle d'accès par objet

  2. 03

    Relations et performances de l'ORM

    20 min
    • Modéliser des relations plusieurs-vers-un et plusieurs-vers-plusieurs avec contraintes et index
    • Détecter et corriger le problème N+1 avec select_related et prefetch_related
    • Calculer des indicateurs en base avec annotate, Count filtré, F et des transactions

    Relations ForeignKey et ManyToManyProblème N+1Annotations et expressions

  3. 04

    Vues génériques, API JSON et interface responsive

    20 min
    • Construire les écrans CRUD avec ListView, DetailView, CreateView, UpdateView et DeleteView
    • Paginer les listes et filtrer le queryset selon l'utilisateur
    • Exposer des données en JSON et les consommer en JavaScript avec fetch et le jeton CSRF, dans une mise en page responsive

    Vues génériques basées sur les classesPaginationRéponses JSON et fetch

  4. 05

    Tests, sécurité et mise en production

    20 min
    • Écrire des tests de modèles et de vues avec TestCase et le client de test
    • Durcir la configuration de production et utiliser check --deploy
    • Déployer avec Gunicorn, PostgreSQL, collectstatic et WhiteNoise

    Tests DjangoSécurité en productionDéploiement

Projet final

Atelier : application de gestion de projets en production

Finalise et mets en ligne l'application Atelier : inscription et connexion, projets avec propriétaire et membres invités, tâches étiquetées avec échéances, tableau de bord d'avancement calculé en base, interface responsive avec bascule des tâches en JavaScript, endpoint JSON d'indicateurs, suite de tests couvrant les droits d'accès, et déploiement avec configuration de production validée par check --deploy.

Livrables

  • Le dépôt Git du projet (applications comptes et projets, gabarits, statiques, migrations)
  • Une suite d'au moins quinze tests, dont des tests de refus d'accès et d'assertNumQueries
  • Un Dockerfile ou une configuration d'hébergement, un .env.example et un README de déploiement
  • L'URL de l'application déployée ou une démonstration enregistrée

Critères d'évaluation

  • Aucun utilisateur ne peut voir ou modifier les données d'un autre (vérifié par des tests)
  • Les pages de liste et le tableau de bord n'ont pas de requêtes N+1
  • Le code utilise les vues génériques, des mixins et des modèles avec contraintes adaptées
  • L'interface est responsive, accessible et les interactions JavaScript respectent la protection CSRF
  • La configuration de production est sécurisée : DEBUG désactivé, secrets hors du dépôt, HTTPS, check --deploy sans avertissement

Questions fréquentes

Quel niveau faut-il pour suivre ce cours ?

Il faut maîtriser les fondamentaux de Django (URL, vues, modèles, ORM, gabarits, formulaires) et les bases de la mise en page responsive en CSS.

Quelle application est construite ?

Une application de gestion de projets et de tâches avec comptes utilisateurs, membres, droits d'accès, tableau de bord, interactions JavaScript et API JSON, prête pour la production.

Le déploiement est-il abordé concrètement ?

Oui : configuration par variables d'environnement, check --deploy, HTTPS, collectstatic avec WhiteNoise, Gunicorn, PostgreSQL et migrations à chaque déploiement, ainsi qu'un exemple de Dockerfile.

Django REST framework est-il couvert ?

Le cours montre comment exposer des données en JSON avec JsonResponse et les consommer avec fetch ; Django REST framework est présenté comme l'étape suivante pour une API complète.

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « Application complète avec Django » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.