Le livre est destiné principalement à un public connaissant déjà les bases du Python et du développement Web (HTML, CSS) mais ne connaissant pas Django, ou connaissant uniquement les bases de Django et désirant approfondir.
Le livre est organisé autour de quelques applications, qui sont développées et améliorées au fur et à mesure des chapitres, permettant une alternance entre la théorie et la pratique.
Il est structuré de manière incrémentale, les différents concepts (formulaires, templates, vues, interface d'administration, ...) étant présentés une première fois de manière large, puis une fois tous les éléments en place, ils sont examinés de nouveau en entrant plus dans les détails et les utilisations avancées.
Il contient aussi un grand nombre de "bonnes pratiques", de conseil et d'astuces pour non seulement avoir une application qui fonctionne, mais aussi avoir une application qui soit robuste, performante et capable d'évoluer.
Nous allons maintenant voir, rapidement, le contenu chapitre par chapitre du livre.
Le premier chapitre explique, en guise d'introduction, comment installer Django et les outils nécessaires sur les principales plate-formes existantes : GNU/Linux, MacOS X et Windows.
Il donne aussi des conseils pratiques pour développer dans de bonnes conditions, comme par exemple l'utilisation d'un gestionnaire de versions.
Le chapitre 2 consiste en un tutoriel permettant d'apprendre les bases de Django par la pratique, en écrivant une application directement utile : un tracker, c'est à dire un outil de gestion des tâches.
Un outil de ce type étant très utile à tout développeur, ce chapitre permet à la fois d'apprendre à écrire une application simple en Django et à fournir au développeur la base d'un outil qui lui permettra de gérer ses tâches par la suite. Un outil qu'il aura écrit lui-même, et pourra donc adapter entièrement à ses besoins.
Le chapitre 3 va aborder la création d'un nouveau projet : un agenda partagé, où des utilisateurs peuvent créer des événements et y inviter d'autres utilisateurs, qui peuvent alors accepter ou refuser l'invitation.
Ce chapitre présente surtout des méthodologies de développement efficace, et permet de réutiliser les bases de Django du chapitre précédent.
Le chapitre 4 continue la création de l'agenda partagé, en abordant toute la partie de l'authentification. Il profite de l'authentification pour aborder les modalités de test automatisés dans Django.
Le chapitre 5 présente la création de formulaires, partie très importante d'une application Web, toujours en approfondissant l'agenda partagé.
Le chapitre 6 explore l'écriture des templates. Il explique à la fois comment organiser les templates dans des projets compliqués composés de plusieurs composants, et à la fois comment intégrer des éléments dynamique, comme un framework JavaScript, dans une application Django.
Le chapitre 7 rentre dans une fonctionnalité extrêmement puissante de Django 1.3 (et ultérieurs) : les class-based generic views, des briques fournies par Django sur lesquelles le développeur peut s'appuyer pour simplifier sa logique applicative.
Le chapitre 8 présente une étape très importante dans la vie d'un projet, non spécifique à Django, mais s'inscrivant totalement dans la philosophie de Django : effectuer, lorsqu'on a bien avancé dans le développement, une revue du code afin de factoriser le code qui peut l'être et d'éliminer le code qui est devenu obsolète.
Le chapitre 9 continue la construction de l'application d'agenda partagé, en mettant en application tous les concepts et outils vus dans les chapitres précédents.
Le chapitre 10 rentre plus en détails dans une partie fondamentale de toute application Web : la base de données, et plus spécifiquement, dans l'un des composants du coeur de Django : son ORM, couche d'abstraction entre une base de données relationnelle et le code Python permettant une grande souplesse de manipulation pour le développeur (mais, hélas, parfois au prix de performances dégradées).
Le chapitre 11 explore en profondeur le cycle d'une requête Web dans une application Django, les différentes étapes entre le moment où Django reçoit une requête depuis le navigateur et le moment où il répond avec une page HTML complète.
Le chapitre 12 approfondi la première exploration de l'écriture des templates qui avait été effectuées au chapitre 6, en expliquant en particulier comment étendre le langage de templates.
Le chapitre 13 approfondi lui les formulaires, qui avaient été abordés une première fois au chapitre 5.
Le chapitre 14 expose les détails du protocole HTTP, comme la différence entre les différents verbes (GET, POST, ...) et explique comment réaliser une API REST en Django.
Le chapitre 15 liste les principales "contributions" de Django, les contributions étant des modules optionnels fournis avec Django lui-même.
Enfin, le chapitre 16 aborde un certain nombre de techniques plus avancées pour exploiter toute la puissance de Django.
Aucune revue d'ouvrage n'étant complète sans exposer quelques critiques, voici nos deux principaux reproches à cet ouvrage :
Hormis les deux critiques (somme toute mineures) évoquées plus haut, ce livre est très bon ouvrage pour découvrir Django (à condition de connaître déjà les bases du langage Python et des technologies Web), ou pour se perfectionner dans l'utilisation de ce framework.
Et nous ne disons pas cela parce que Yohann est ancien de Pilot Systems ;)
Actions sur le document