IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Introduction au langage Python 3 et au framework Web Flask par l'exemple


précédentsommaire

39. Conclusion

Rappelons le travail fait dans ce document :

Chapitre

Dossier

Contenu

     

Chapitre 1

 

Présentation du cours

Chapitre 2

 

Installation d’un environnement de travail

Chapitre 3

[bases]

Les bases du langage Python – structures du langage – type de données – fonctions – affichage console – chaînes de formatage – changement de types – les listes – les dictionnaires – les expressions régulières

Chapitre 4

[strings]

Notation des chaînes de caractères – méthodes de la classe <str> - encodage / décodage des chaînes de caractères en UTF-8

Chapitre 5

[exceptions]

Gestion des exceptions

Chapitre 6

[fonctions]

Portée des variables – mode de passage des paramètres – utiliser des modules – le Python Path – paramètres nommés – fonctions récursives

Chapitre 7

[fichiers]

Lecture / écriture d’un fichier texte – gestion des fichiers encodés en UTF-8 – gestion des fichiers jSON

Chapitre 8

[impots/v01]

Version 1 de l’exercice d’application, un calcul d’impôt sur les revenus. L’application est déclinée en 18 versions – La version 1 implémente une solution procédurale

Chapitre 9

[imports]

Gestion des dépendances d’une application par importation de modules – une méthode de gestion des dépendances est présentée – elle est utilisée dans tout le document – gestion du Python Path

Chapitre 10

[impots/v02]

La version 2 de l’application reprend la version 1 en rassemblant toutes les constantes de la configuration dans un fichier de configuration

Chapitre 11

[impots/v03]

La version 3 de l’application reprend la version 2 en utilisant des fonctions encapsulées dans un module – la gestion des dépendances est faite par configuration – introduction de fichier jSON pour lire les données nécessaires au calcul de l’impôt et écrire les résultats des calculs

Chapitre 12

[classes/01]

Classes – héritage – méthodes et propriétés – getters / setters – constructeur – propriété [__dict__]

Chapitre 13

[classes/02]

Présentation des classes [BaseEntity] et [MyException] utilisées dans le reste du document – [BaseEntity] facilite les conversions objet / dictionnaire

Chapitre 14

[troiscouches]

Architecture en couches et programmation par interfaces. Ce chapitre présente les méthodes de programmation utilisées dans le reste du document

Chapitre 15

[impots/v04]

Version 4 de l’application – cette version implémente une solution avec une architecture en couches, la programmation par interfaces, l’utilisation de classes dérivées de [BaseEntity] et [MyException]

Chapitre 16

[databases/mysql]

Installation du SGBD MySQL – connexion à la base de données – création d’une table – exécution d’ordres SQL SELECT, UPDATE, DELETE, INSERT – transaction – requêtes SQL paramétrées

Chapitre 17

[databases/postgresql]

Installation du SGBD PostgreSQL – connexion à la base de données – création d’une table – exécution d’ordres SQL SELECT, UPDATE, DELETE, INSERT – transaction – requêtes SQL paramétrées

Chapitre 18

[databases/anysgbd]

Ecrire du code indépendant du SGBD

Chapitre 19

[databases/sqlalchemy]

L’ORM (Object Relational Mapper) SqlAlchemy – un ORM permet de travailler de façon unifiée avec différents SGBD - mapping classes / tables SQL – opérations sur les classes images des tables SQL

Chapitre 20

[impots/v05]

Version 5 de l’application de calcul de l’impôt – Utilisation de l’architecture en couches de la version 04 et de l’ORM SqlAlchemy pour travailler avec les SGBD MySQL et PostgreSQL

Chapitre 21

[inet]

Programmation internet – protocole TCP / IP (Transfer Control Protocol / Internet Protocol) - protocoles HTTP (HyperText Transfer Protocol) – SMTP (Simple Mail Transfer Protocol) – POP (Post Office Protocol) – IMAP (Internet Message Access Protocol)

Chapitre 22

[flask]

Services web avec le framework web Flask – affichage d’une page HTML – service web jSON – requêtes GET et POST – gestion d’une session web

Chapitre 23

[impots/http-servers/01]

[impots/http-clients/01]

Version 6 de l’exercice d’application - Création d’un service web jSON de calcul de l’impôt avec une architecture multicouche - Ecriture d’un client web pour ce serveur avec une architecture multicouche – programmation client / serveur – utilisation du module [requests]

Chapitre 24

[impots/http-servers/02]

[impots/http-clients/02]

Version 7 de l’exercice de l’application – la version 6 est améliorée : le client et le serveur sont multithtreadés – utilitaires [Logger] pour loguer les échanges client / serveur – [SendMail] pour envoyer un mail à l’administrateur de l’application

Chapitre 25

[impots/http-servers/03]

[impots/http-clients/03]

Version 8 de l’exercice d’application – la version 7 est améliorée par l’usage d’une session

Chapitre 26

[xml]

Gestion XML avec le module [xmltodict]

Chapitre 27

[impots/http-servers/04]

[impots/http-clients/04]

Version 9 de l’exercice d’application – la version 8 est modifiée pour avoir des échanges client / serveur en XML ;

Chapitre 28

[impots/http-servers/05]

[impots/http-clients/05]

Version 10 de l’exercice d’application – au lieu de traiter N contribuables par N requêtes GET, on utilise une unique requête POST avec les N contribuables dans le corps du POST

Chapitre 29

[impots/http-servers/06]

[impots/http-clients/06]

Version 11 de l’exercice d’application – l’architecture client / serveur de l’application est modifiée : la couche [métier] passe du serveur au client

Chapitre 30

[impots/http-servers/07]

Version 12 de l’exercice d’application – cette version implémente un serveur MVC (Model – View – Controller) délivrant indifféremment, à la demande du client, du jSON, du XML et du HTML. Ce chapitre implémente les versions jSON et XML du serveur

Chapitre 31

[impots/http-clients/07]

Implémentation des clients jSON et XML du serveur MVC de la version 12

Chapitre 32

[impots/http-servers/07]

Implémentation du serveur HTML de la version 12 – utilisation du framework CSS Bootstrap –

Chapitre 33

[impots/http-servers/08]

Version 13 de l’exercice d’application - Refactorisation du code de la version 12 – gestion de la session avec le module [flask_session] et un serveur Redis – utilisation de mots de passe cryptés

Chapitre 34

[impots/http-servers/09]

[impots/http-clients/09]

Version 14 de l’exercice d’application – implémentation d’URL avec un jeton CSRF (Cross Site Request Forgery)

Chapitre 35

[impots/http-servers/10]

Version 15 de l’exercice d’application – refactorisation du code de la version 14 pour gérer deux types d’actions : ASV (Action Show View) qui ne servent qu’à afficher une vue sans modifier l’état du serveur, ADS (Action Do Something) qui font une action qui modifie l’état du serveur – ces actions se terminent toutes par une redirection vers une action ASV – cela permet de gérer correctement les rafraîchissements de page du navigateur client

Chapitre 36

[impots/http-servers/11]

Version 16 de l’application – gestion des URL avec préfixe

Chapitre 37

[impots/http-servers/12]

Version 17 de l’application – portage de la version 16 sur un serveur Apache / Windows

Chapitre 38

[impots/http-servers/13]

Version 18 de l’application – corrige une anomalie de la version 17

Les applications client / serveur du calcul de l’impôt ont implémenté l’architecture suivante :

Image non disponible

La couche [web] ci-dessus a été implémentée avec une architecture MVC :

Image non disponible

Le contenu du document est dense. Le lecteur qui ira jusqu’au bout aura une bonne vision de la programmation web MVC en Python / Flask et au-delà une bonne vision de la programmation web MVC dans d’autres langages.

On pourra trouver des informations complémentaires sur le framework Flask dans le document https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world de l’auteur Miguel Grinberg. J’ai lu quelques éléments de son cours et ceux-ci m’ont semblé très pédagogiques. L’auteur présente beaucoup de notions non abordées dans ce document.


précédentsommaire