10. Conclusion intermédiaire
Les exemples 01 à 28 ont présenté, une à une, toutes les notions dont l'étude de cas a besoin :
Notions | Exemples | Dans l'étude de cas |
blueprints, actions, routage, réponses, redirections | 01 à 05 | dossier [controllers] |
fabrique [create_app], services partagés ([app.extensions], [current_app]) | 02, 06 | [rdvmedecins/__init__.py], [web/services.py] |
modèle d'action, liaison, validation | 07 à 12 | [forms/], [web/validation.py] |
vues [Jinja2], gabarit, fragments, macros, variables communes des vues | 13 à 16 | dossier [templates], [web/modele_commun.py] |
formulaires [WTForms], validation, réaffichage | 17 à 19 | [forms/formulaires.py], [templates/fragments/champs_personne.html] |
Post / Redirect / Get, messages flash | 20 | [web/flash.py], [templates/fragments/flash.html] |
liens et boutons, protection anti-CSRF, fenêtre de confirmation | 21 | [templates/fragments/confirmation.html], [static/js/app.js] |
internationalisation | 22 | [i18n/*.json], [web/traducteur.py], [controllers/langue.py] |
portées des données | 23 | [web/application_model.py] (application), [g] (requête), cookies (client) |
crochets, gestionnaires d'erreurs, pages d'erreur | 24 | [auth/securite.py], [web/erreurs.py], [templates/erreur.html] |
authentification JWT, rôles, captcha, limitation | 25 à 27 | dossier [auth], [controllers/auth.py] |
couches web / métier / DAO, [SQLAlchemy], transactions | 28 | dossiers [entities], [repositories], [metier] |
L'étude de cas les assemble en une application complète, de taille réaliste (80 fichiers, environ 5 300 lignes, commentaires compris). Elle a été écrite avec le même soin que les exemples : chaque fichier commence par un commentaire qui explique son rôle, et les passages délicats sont commentés dans le code. Chaque dossier principal contient en outre un fichier [README.md] qui présente ses fichiers. Le commentaire du document insiste sur ce que les exemples n'ont pas montré, et renvoie à eux pour le reste.