39. Fazit
Lassen Sie uns die in diesem Dokument geleistete Arbeit noch einmal zusammenfassen:
Kapitel | Code-Repository | Inhalt |
Kursübersicht | ||
Einrichten einer Arbeitsumgebung | ||
[Grundlagen] | Die Grundlagen der Programmiersprache Python – Sprachstrukturen – Datentypen – Funktionen – Konsolenausgabe – Formatzeichenfolgen – Typkonvertierung – Listen – Wörterbücher – reguläre Ausdrücke | |
[Zeichenketten] | Zeichenfolgen-Notation – Methoden der Klasse <str> – Kodierung/Dekodierung Zeichenfolgen in UTF-8 | |
[Ausnahmen] | Ausnahmebehandlung | |
[Funktionen] | Variablengültigkeitsbereich – Parameter – Verwendung von Modulen – Der Python-Pfad – Benannte Parameter – Rekursive Funktionen | |
[Dateien] | Lesen/Schreiben einer Textdatei – Umgang mit UTF-8-kodierten Dateien – Umgang mit JSON-Dateien | |
[taxes/v01] | Version 1 der Anwendung Übung: Berechnung der Einkommensteuer . Die Anwendung ist in 18 Versionen – Version 1 implementiert eine prozedurale Lösung | |
[Importe] | Verwalten von Anwendungsabhängigkeiten durch Importieren von – eine Methode zur Verwaltung von Abhängigkeiten Verwaltungsmethode wird vorgestellt – sie wird im gesamten Dokument verwendet – Verwaltung des Python-Pfads | |
[impots/v02] | Version 2 der Anwendung baut auf Version 1 auf, indem sie alle Konfigurationskonstanten in einer Konfigurationsdatei, die zudem den Python-Pfad verwaltet | |
[imports/v03] | Version 3 der Anwendung baut auf Version 2 auf, indem sie Funktionen, die in einem Modul – die wird über die Konfiguration – Einführung einer JSON-Datei zum Einlesen der für für die Steuerberechnung und zum Schreiben der Berechnungsergebnisse | |
[Klassen/01] | Klassen – Vererbung – Methoden und Eigenschaften – Getter/Setter – Konstruktor – [__dict__] Eigenschaft | |
[Klassen/02] | Einführung in die Klassen [BaseEntity] und [MyException] im weiteren Verlauf des – [BaseEntity] erleichtert Objekt-/Dictionary- Konvertierungen | |
[drei-Schichten] | Schichtarchitektur und schnittstellenbasierte Programmierung. Dieses Kapitel stellt die Programmiermethoden im weiteren Verlauf des Dokument | |
[taxes/v04] | Version 4 der Anwendung – diese Version implementiert eine Lösung mit einer mehrschichtigen Architektur sowie der Verwendung von Klassen, die von [BaseEntity] und [MyException] | |
[Datenbanken/MySQL] | Installation des MySQL-DBMS – Verbindung zu einer Datenbank herstellen – Erstellen einer Tabelle – Ausführen von SELECT-, UPDATE-, DELETE- und INSERT-SQL-Anweisungen – Transaktionen – parametrisierte SQL-Abfragen | |
[Datenbanken/PostgreSQL] | Installation des PostgreSQL-DBMS – Verbindung zu einer Datenbank herstellen – Erstellen einer Tabelle – Ausführen von SELECT-, UPDATE-, DELETE- und INSERT-SQL-Anweisungen – Transaktionen – parametrisierte SQL-Abfragen | |
[Datenbanken/beliebiges DBMS] | DBMS-unabhängigen Code schreiben | |
[Datenbanken/SQLAlchemy] | Das SqlAlchemy-ORM (Object- Relational Mapper) – ein ORM ermöglicht einen einheitlichen Ansatz für Arbeiten mit verschiedenen DBMS – Zuordnung von Klassen zu SQL-Tabellen – Operationen auf Klassen , die SQL-Tabellen darstellen | |
[taxes/v05] | Version 5 der Steuerberechnungs- – Verwendung der mehrschichtigen Architektur aus Version 04 und dem SqlAlchemy-ORM für die mit MySQL und PostgreSQL DBMS | |
[inet] | Webprogrammierung – TCP/IP (Transmission Control / Internetprotokoll) – HTTP-Protokolle (HyperText Transfer Protocol) – SMTP (Simple Mail Transfer Protocol) – POP (Post Office Protocol) – IMAP (Internet Message Access Protocol) | |
[flask] | Webdienste mit dem Flask-Web-Framework Framework – Anzeigen einer HTML-Seite – JSON-Webdienst – GET- und POST-Anfragen – Verwaltung einer Websitzung | |
[impots/http-servers/01] [taxes/http-clients/01] | Version 6 der Anwendung Übung – Erstellen eines JSON-Webdienstes Service zur Steuerberechnung mit einer mehrschichtigen Architektur – Schreiben eines Web-Clients für diesen Server mit einer mehrschichtigen Architektur – Client/Server-Programmierung – Verwendung des Moduls [requests] | |
[taxes/http-servers/02] [Steuern/HTTP-Clients/02] | Version 7 der Anwendung Übung – Version 6 wurde verbessert: Client und Server sind multithreaded – [Logger] Dienstprogramme zur Protokollierung von Client-/Server- – [SendMail] zum Versenden einer E-Mail an den Administrator | |
[taxes/http-servers/03] [Steuern/HTTP-Clients/03] | Version 8 der Anwendung Übung – Version 7 wurde verbessert durch die Verwendung einer Web-Sitzung | |
[xml] | XML (eXtended Markup Language) mit dem [xmltodict]-Modul | |
[taxes/http-servers/04] [impots/http-clients/04] | Version 9 der Anwendung Übung – Version 8 wird angepasst um Client/Server- Austausch in XML; | |
[taxes/http-servers/05] [Steuern/HTTP-Clients/05] | Version 10 der Anwendung Übung – statt N Steuerzahler über N GET-Anfragen zu verarbeiten, wird eine einzige POST-Anfrage mit den N Steuerzahlern im POST- Body | |
[Steuern/HTTP-Server/06] [Steuern/HTTP-Clients/06] | Übung zur Version 11 der Anwendung Übung – die Client-Server-Architektur der Anwendung ist geändert: Die [Business]-Schicht wird vom Server auf den Client | |
[Steuern/HTTP-Server/07] | Version 12 der Anwendung Übung – diese Version implementiert einen MVC-Server (Model–View– Controller)-Server, der JSON, XML und HTML , je nach Anfrage des Clients. Dieses Kapitel implementiert die JSON- und XML- des Servers | |
[impots/http-clients/07] | Implementierung der JSON- und XML-Clients für den MVC-Server in Version 12 | |
[impots/http-servers/07] | Implementierung des HTML-Servers in Version 12 – unter Verwendung des Bootstrap-CSS-Frameworks – | |
[impots/http-servers/08] | Version 13 der Anwendung – Refactoring des Codes aus Version 12 – Verwaltung der Sitzungen mit dem [flask_session]-Moduls und eines Redis-Server – Verwendung verschlüsselter Passwörtern | |
[imports/http-servers/09] [impots/http-clients/09] | Version 14 der Anwendung Übung – Implementierung von URLs mit einem CSRF-Token (Cross-Site Request Forgery) | |
[impots/http-servers/10] | Version 15 der Anwendung Übung – Refactoring des Codes aus Version 14, um zwei Aktionsarten: ASV (Action Show View), die nur dazu dienen dazu dient, eine Ansicht anzuzeigen, ohne den Zustand des Servers zu verändern, und ADS (Action Do Something), die eine Aktion ausführen, die den Zustand des Servers verändert – diese Aktionen enden alle mit einer Weiterleitung zu einer ASV-Aktion – dies ermöglicht korrekte Behandlung von Seitenaktualisierungen im Client-Browser | |
[impots/http-servers/11] | Version 16 der Anwendung – URL-Verwaltung mit Präfixen | |
[impots/http-servers/12] | Version 17 der Anwendung – Portierung von Version 16 auf einen Apache/Windows-Server | |
[impots/http-servers/13] | Version 18 der Anwendung – behebt einen Fehler in Version 17 |
Die Client/Server-Anwendungen zur Steuerberechnung haben die folgende Architektur implementiert:

Die obige [Web]-Schicht wurde unter Verwendung einer MVC-Architektur implementiert:

Der Inhalt dieses Dokuments ist sehr umfangreich. Leser, die es bis zum Ende schaffen, werden ein solides Verständnis der MVC-Webprogrammierung in Python/Flask und darüber hinaus ein solides Verständnis der MVC-Webprogrammierung in anderen Sprachen erlangen.
Weitere Informationen zum Flask-Framework finden Sie in dem Dokument [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world] des Autors Miguel Grinberg. Ich habe einige Abschnitte seines Kurses gelesen und fand sie sehr lehrreich. Der Autor behandelt viele Konzepte, die in diesem Dokument nicht behandelt werden.