Skip to content

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:

Image

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

Image

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.