Une formation Django complète de cinq jours couvrant tout, de la création du projet au déploiement en production. Construisez des applications web complètes avec des APIs REST, des fonctionnalités temps réel et les bonnes pratiques modernes.

Durée 5 jours (35 heures)
Format 50 pour cent présentation, 50 pour cent exercices
Prérequis Solides fondamentaux Python requis, connaissances HTML/CSS de base recommandées
Supports Machines virtuelles fournies, supports de cours électroniques

Jour 1 — Fondations Django

Introduction à Django

  • Création de projet : django-admin, settings, structure du projet
  • Configuration : bases de données, fichiers statiques, variables d'environnement
  • Architecture des apps : création d'apps, registre, apps réutilisables

Modèles

  • Fondamentaux de l'ORM : types de champs, options, classe Meta
  • Migrations : makemigrations, migrate, compression, migrations de données
  • Relations : ForeignKey, ManyToManyField, OneToOneField
  • QuerySets : filtrage, tri, agrégation, annotation, objets F et Q

Django Admin

  • Personnalisation de l'admin : ModelAdmin, list_display, list_filter, search_fields
  • Actions personnalisées, modèles inline, champs en lecture seule
  • Filtres admin et vues admin personnalisées

Jour 2 — Vues, Templates et Formulaires

Vues et URLs

  • Vues basées sur des fonctions : request, response, raccourcis
  • Vues basées sur des classes : ListView, DetailView, CreateView, UpdateView, DeleteView
  • Mixins : LoginRequiredMixin, PermissionRequiredMixin, mixins personnalisés
  • Configuration des URLs : path, re_path, include, espaces de noms

Templates

  • Héritage de templates : extends, block, include
  • Tags et filtres de templates : natifs et personnalisés
  • Processeurs de contexte : ajout de données contextuelles globales

Formulaires

  • Formulaires Django : Form, ModelForm, validation, nettoyage
  • Formsets : formsets de modèles, formsets inline
  • Fichiers statiques et médias : configuration, service, backends de stockage

Jour 3 — APIs REST

Django REST Framework

  • Sérialiseurs : ModelSerializer, sérialiseurs imbriqués, validation
  • ViewSets et routeurs : opérations CRUD, actions personnalisées
  • Authentification : session, token, authentification JWT
  • Permissions : permissions natives, permissions au niveau objet
  • Filtrage, recherche et pagination

Alternative Django Ninja

  • Django Ninja : framework API async-first avec annotations de type
  • Schémas Pydantic pour la validation des requêtes et réponses
  • Comparaison des approches DRF et Django Ninja

Tests d'API

  • Tests d'APIs avec le client de test Django et les outils de test DRF
  • Documentation d'API avec OpenAPI et Swagger

Jour 4 — Sujets avancés

Internals Django

  • Signaux : pre_save, post_save, signaux du cycle de vie des requêtes
  • Middleware : traitement requête/réponse, middleware personnalisé
  • Commandes de gestion : création de commandes personnalisées pour l'automatisation
  • Cache : cache par vue, cache de fragments de template, API de cache bas niveau

Temps réel et tâches de fond

  • Django Channels : support WebSocket, consumers, routage
  • Notifications en temps réel et patterns de chat
  • Celery pour les tâches de fond : tâches, planification, backends de résultats

Sécurité

  • Bonnes pratiques de sécurité : prévention CSRF, XSS, injection SQL
  • Patterns d'authentification et d'autorisation
  • HTTPS, HSTS et Content Security Policy

Jour 5 — Tests, Déploiement et Projet

Tests

  • Tests unitaires et tests d'intégration avec Django TestCase
  • factory_boy : création de données de test avec des factories
  • Couverture de tests : mesure et amélioration de la couverture

Déploiement

  • Docker : conteneurisation d'applications Django
  • Gunicorn et Uvicorn : serveurs WSGI et ASGI
  • Nginx : configuration de reverse proxy
  • Mise en place de pipeline CI/CD avec GitHub Actions ou GitLab CI

Performance et Projet

  • Optimisation des performances : select_related, prefetch_related, indexation de la base de données
  • Django Debug Toolbar et profilage
  • Projet pratique : construction d'une application complète, du cahier des charges au déploiement