- Livres & vidéos
- Django - Concevez vos applications web professionnelles en Python : du modèle de données au déploiement
Django Concevez vos applications web professionnelles en Python : du modèle de données au déploiement
Bientôt disponible !
Suivez-nous pour être informé dès la sortie
Les points forts du livre :
- Une approche pratique basée sur la création progressive d’une application web professionnelle avec Django,
- Une couverture complète de l’écosystème : ORM, API REST, authentification, tests, Docker et déploiement,
- Une ouverture vers des architectures robustes avec Redis, RabbitMQ, Celery et de nombreux modules Django
- Niveau Confirmé à Expert
- Nombre de pages 528 pages
- Parution septembre 2026
Ce livre s’adresse aux développeurs souhaitant maîtriser Django, le framework web full-stack monolithique écrit en Python, pour concevoir des applications web professionnelles de A à Z. Pour en tirer le meilleur profit, des connaissances de base en Python et quelques notions sur le fonctionnement du web (HTTP, bases de données relationnelles) sont un plus.
L’ouvrage adopte une pédagogie résolument pratique : vous êtes guidé par la construction d’une véritable application fil rouge que vous faites grandir chapitre après chapitre. Chaque étape est associée à une version du code source repérable par des tags Git, ce qui vous permet de suivre la progression et de comparer votre travail à chaque jalon.
Vous découvrez ainsi le cœur de Django, avec la modélisation des données et l’ORM (relations, managers, migrations, signaux, polymorphisme), l’interface d’administration, le CRUD, les vues génériques et l’authentification, puis des sujets essentiels d’un projet réel : internationalisation, API REST, formulaires, intégration front-end, commandes et middlewares, génération de données, tests unitaires et end-to-end.
Loin de se limiter au code, le livre vous initie aussi aux pratiques DevOps : dès le départ, vous mettez en place un environnement de développement moderne reposant sur Docker et la conteneurisation, jusqu’au déploiement en production. Vous allez par ailleurs bien plus loin que le seul framework, en intégrant tout un écosystème de référence : Redis pour le cache et la file de messages, RabbitMQ et Celery pour le traitement asynchrone et distribué, sans oublier de nombreux modules tiers incontournables (Django REST Framework, Django Ninja, Crispy Forms, Bootstrap 5, DataTables, Martor, factory-boy…).
À l’issue de cette lecture, vous disposerez d’une vision complète et opérationnelle, capable de concevoir, tester, conteneuriser et déployer vos propres applications web robustes et maintenables.
Caractéristiques
- Livre (broché) - 17 x 21 cm
- ISBN : 978-2-409-05548-5
- EAN : 9782409055485
- Ref. ENI : EIDJANGO
Téléchargements
Introduction
- 1. Applications web
- 1.1 Vue d’ensemble
- 1.2 Focus côté serveur
- 1.3 Application
- 1.4 Forces de Django
- 2. Présentation de Python
- 2.1 Introduction
- 2.2 Tutoriel
- 3. Présentation de Django
- 3.1 Historique
- 3.2 Popularité
- 4. Alternatives à Django
- 4.1 Monolithe Full-stack
- 4.2 Microservices/API REST
- 4.3 Microframeworks
- 4.4 Outils front-ends
- 4.5 Addons
DevOps
- 1. Installation de l’environnement de travail
- 1.1 Python et son environnement
- 1.2 Environnement virtuel
- 1.3 Poetry versus UV
- 1.4 Docker
- 1.5 Git
- 1.6 IDE
- 1.7 PyCharm
- 1.8 VSCode
- 2. Git et Docker
- 2.1 Utiliser les tags Git
- 2.2 Initialisation du projet
- 2.3 Docker
- 2.3.1 Introduction
- 2.3.2 Utilisation de poetry
- 2.3.3 Sécurisation
- 3.1 Travailler avec PostgreSQL
- 3.2 Outils indispensables
Modèles
- 1. Introduction aux modèles
- 1.1 Django et modèle de données
- 1.2 Qu’est-ce qu’un modèle ?
- 1.2.1 Exemple du tutoriel de Django
- 1.2.2 Exemple pour une bibliothèque de livres
- 1.3 Notion d’app Django
- 1.4 Création d’un modèle
- 1.5 Migrations
- 1.6 Que faire avec un modèle ?
- 2.1 Introduction
- 2.2 Champs textuels
- 2.3 Champs numériques
- 2.4 Champs booléens
- 2.5 Champs temporels
- 2.6 Champs binaires
- 2.7 Champs fichiers
- 3.1 Travailler avec des énumérations
- 3.2 Clé étrangère vers une autre table
- 3.3 Ordonner des enregistrements
- 3.4 Clé étrangère sélective
- 4.1 Relations un à un explicites
- 4.2 Héritage multitable
- 5.1 Relations implicites
- 5.2 Relations explicites
ORM
- 1. Manipulation d’objets en console
- 1.1 Comprendre un modèle
- 1.2 Créer, modifier, supprimer
- 1.3 Requêter un modèle
- 1.4 Insertions, modifications et suppressions de masse
- 1.5 Lookups
- 1.6 Champs calculés
- 2. Managers
- 2.1 Créer un manager personnalisé
- 2.2 Tester son manager personnalisé
- 3. Fixtures
- 3.1 Sauvegarder des données
- 3.2 Charger des données
- 3.3 Se donner des outils
CRUD
- 1. Présentation de l’interface administrateur
- 2. Côté technique
- 3. Personnalisations simples
- 3.1 Personnaliser la vue liste
- 3.1.1 Quelles colonnes dans le tableau ?
- 3.1.2 Comment éditer des données depuis la liste ?
- 3.1.3 Comment faire une recherche ?
- 3.1.4 Comment filtrer les données ?
- 3.1 Personnaliser la vue liste
- 3.2 Personnaliser la vue formulaire
- 3.2.1 Quels champs afficher dans le formulaire ?
- 3.2.2 Comment organiser le formulaire ?
- 3.2.3 Comment créer différentes sections ?
- 3.2.4 Comment forcer un champ en lecture seule conditionnellement ?
- 3.3 Comment limiter les valeurs d’une liste de sélection ?
- 4.1 Modifier des données d’une relation many to one
- 4.2 Ajouter un troisième niveau
- 4.3 Modifier des données d’une relation many to many
- 5.1 Retirer un modèle du menu
- 5.2 Gérer la visibilité des interfaces
- 5.3 Gérer finement les permissions
- 5.3.1 Restreindre les données visibles
- 5.3.2 Restreindre les données du formulaire
- 6.1 Créer une action
- 6.2 Communiquer sur le résultat
Introduction aux vues
- 1. Template view
- 1.1 Retour sur le modèle MVT
- 1.2 Notion de routage
- 1.3 Créer une vue basique
- 1.4 Créer le template associé
- 1.5 Gabarit maître
- 1.6 Langage de gabarits
- 2. List view
- 2.1 Vue dédiée aux listes
- 2.2 Gabarits
- 3. Detail view
- 3.1 Vue dédiée à l’affichage d’un objet
- 3.2 Gabarit
- 4. Update view
- 4.1 Vue dédiée à la modification d’un objet
- 4.2 Formulaire
- 4.3 Gabarit
- 5. Create view
- 5.1 Vue dédiée à la création d’un objet
- 5.2 Gabarit
- 6. Delete view
- 6.1 Vue dédiée à la suppression d’un objet
- 6.2 Gabarit
- 7. Authentification
- 7.1 Solution utilisant les vues de Django
- 7.2 Autres fonctionnalités de Django
- 7.3 Vues personnalisées sous la forme de classes
- 7.4 Vues personnalisées sous la forme de fonctions
- 7.5 Gestion des permissions
Internationalisation
- 1. Installer un outil
- 2. Internationalisation
- 3. Régionalisation
Rest et Swagger
- 1. Django REST Framework
- 1.1 Introduction aux services web
- 1.2 Installer l’outil
- 1.3 Créer un premier service web
- 1.4 Créer un service web plus complexe
- 2. Django Ninja
- 2.1 Installer l’outil
- 2.2 Créer un service web GET simple
- 2.3 Créer un service web GET avec exceptions
- 2.4 Créer un service web POST
Notions avancées sur les modèles
- 1. Clés naturelles
- 1.1 Utilité des clés naturelles
- 1.2 Convertir les modèles en clés naturelles
- 1.3 Convertir les clés naturelles en instance de modèles
- 1.4 Importer/exporter des données
- 1.5 Internationalisation
- 1.6 Régionalisation
- 2. Mixins
- 2.1 Notions autour de l’héritage
- 2.2 Mutualiser des champs communs
- 3. Migration liée aux mixins
- 3.1 Modification d’une migration
- 3.2 Lancer un script Python
- 3.3 Migration par requête SQL
- 4. Signaux
- 4.1 Explications générales sur les signaux
- 4.2 Remplir le slug automatiquement
- 4.3 Créer automatiquement un jeu de questions et réponses
- 4.4 Cohérence du nombre de points des questions
- 5. Modèles récursifs
- 5.1 Qu’est-ce qu’un modèle récursif ?
- 5.2 Solution avec PostgreSQL
- 5.3 Solution avec un module tiers
- 6. Polymorphisme
- 6.1 Installer le module django-polymorphic
- 6.2 Modèles polymorphiques
- 6.3 Migrations
- 6.4 Fixtures
Gestion avancée de l’interface d’administration
- 1. Polymorphisme
- 2. Multiples vues pour un modèle
- 2.1 Problématique
- 2.2 Détails de l’interface d’administration
- 2.3 Performances
- 2.4 Interface en lecture seule
- 3. Filtres avancés
- 3.1 Filtres simples
- 3.2 Filtres réutilisables
- 4. Widgets
- 4.1 Améliorations pour le formulaire
- 4.2 Améliorations pour la liste
- 5. Vues
- 5.1 Personnaliser les vues
- 5.1.1 Définition de l’objectif
- 5.1.2 Méthodologie appliquée
- 5.1.3 Modification du fil d’Ariane
- 5.1.4 Supprimer un bouton
- 5.1.5 Changer la redirection après modification
- 5.1.6 Afficher un élément personnalisé en HTML
- 5.1 Personnaliser les vues
- 5.2 Rajouter une nouvelle vue
- 5.2.1 Créer la vue
- 5.2.2 Créer le gabarit
- 5.2.3 Créer la règle de routage
- 5.2.4 Ajouter un lien vers notre vue depuis le formulaire
- 5.2.5 Ajouter un lien vers notre vue depuis la liste
- 6.1 Installer Jazzmin
- 6.2 Paramétrer Jazzmin
- 6.3 Personnaliser Jazzmin
Notions avancées sur les vues
- 1. Intégration de Bootstrap 5
- 1.1 Installer Bootstrap 5 et les icônes
- 1.2 Gabarit maître
- 1.3 Page d’accueil
- 1.4 Pages du jeu
- 2. Listes dynamiques
- 2.1 Installer un outil
- 2.2 Création de la vue
- 2.3 Création du gabarit
- 3. Éditeur avancé
- 3.1 Installer le module externe
- 3.2 Utiliser le champ dans un modèle
- 3.3 Mettre en place la solution dans l’interface d’administration
- 3.4 Mettre en place la solution dans une vue d’édition
- 3.5 Mettre en place la solution dans une vue détail
- 4. Template tags
- 4.1 Créer un tag simple
- 4.2 Créer un tag plus complexe
Formulaires
- 1. Formulaire standard
- 1.1 Créer un formulaire simple
- 1.2 Personnaliser un formulaire pour modèle
- 1.3 Rajouter des champs à un formulaire
- 1.4 Tunnel de traitement classique
- 2. Crispy forms
- 2.1 Pourquoi utiliser crispy ?
- 2.2 Installer le module
- 2.3 Personnaliser les formulaires
- 3. Crispy Formsets
- 3.1 Préparation
- 3.2 Création du formulaire
- 4. Création de la vue
Outils tiers
- 1. Commandes de gestion
- 1.1 Exporter les jeux
- 1.2 Importer les jeux
- 2. Middleware
- 2.1 Qu’est-ce qu’un middleware ?
- 2.2 Créer un middleware
- 3. Celery
- 3.1 Nouveaux conteneurs
- 3.2 Installer et configurer Celery
- 3.3 Tester Celery
- 3.4 Créer une tâche
- 3.5 Créer une tâche planifiée
Tests
- 1. Usines
- 1.1 Installer les deux modules indispensables
- 1.2 Créer une première usine
- 1.3 Héritage
- 2. Tests unitaires
- 2.1 Principes des tests unitaires
- 2.2 Tester les modèles
- 2.3 Tester les signaux
- 2.4 Tester les tâches
- 2.5 Tester les formulaires
- 2.6 Tester les sérialiseurs
- 2.7 Tester les API
- 2.8 Tester les commandes
- 3. Test end to end
- 3.1 Installer Behave
- 3.2 Tutoriel
- 3.3 Tester la création de l’avatar
- 3.4 Tester une page
Déploiement
- 1. Préparer Django pour la production
- 1.1 Cache
- 1.2 Health check
- 2. Déploiement
- Index

















