Skip to content

39. Wnioski

Podsumujmy prace wykonane w niniejszym dokumencie:

Rozdział
Dokumentacja
Spis treści
   
 
Przedstawienie kursu
 
Konfiguracja środowiska pracy
[bases]
Podstawy języka Python – struktury języka – typy danych – funkcje – wyświetlanie w konsoli – ciągi formatujące – konwersja typów – listy – słowniki – wyrażenia regularne
[strings]
Zapis ciągów znaków – metody klasy <str> – kodowanie / dekodowanie ciągów znaków w UTF-8
[exceptions]
Obsługa wyjątków
[fonctions]
Zakres zmiennych – sposób przekazywania parametrów – korzystanie z modułów – ścieżka Python – parametry nazwane – funkcje rekurencyjne
[fichiers]
Odczyt/zapis pliku tekstowego – obsługa plików zakodowanych w UTF-8 – obsługa plików jSON
[impots/v01]
Wersja 1 ćwiczenia praktycznego: obliczenie podatku dochodowego. Aplikacja występuje w 18 wersjach – wersja 1 realizuje rozwiązanie proceduralne
[imports]
Zarządzanie zależnościami aplikacji poprzez import modułów – przedstawiono metodę zarządzania zależnościami – jest ona stosowana w całym dokumencie – zarządzanie ścieżką Python Path
[impots/v02]
Wersja 2 aplikacji opiera się na wersji 1, skupiając wszystkie stałe konfiguracyjne w jednym pliku konfiguracyjnym
[impots/v03]
Wersja 3 aplikacji opiera się na wersji 2, wykorzystując funkcje zamknięte w module – zarządzanie zależnościami odbywa się poprzez konfigurację – wprowadzono plik jSON do odczytu danych niezbędnych do obliczenia podatku oraz zapisywania wyników obliczeń
[classes/01]
Klasy – dziedziczenie – metody i właściwości – metody pobierające / ustawiające – konstruktor – właściwość [__dict__]
[classes/02]
Przedstawienie klas [BaseEntity] i [MyException] wykorzystywanych w dalszej części dokumentu – [BaseEntity] ułatwia konwersje między obiektami a słownikami
[troiscouches]
Architektura warstwowa i programowanie za pomocą interfejsów. W niniejszym rozdziale przedstawiono metody programowania wykorzystywane w dalszej części dokumentu
[impots/v04]
Wersja 4 aplikacji – ta wersja wdraża rozwiązanie oparte na architekturze warstwowej, programowaniu za pomocą interfejsów oraz wykorzystaniu klas pochodnych od [BaseEntity] i [MyException]
[databases/mysql]
Instalacja SGBD MySQL – połączenie z bazą danych – utworzenie tabeli – wykonanie poleceń SQL SELECT, UPDATE, DELETE, INSERT – transakcja – skonfigurowane zapytania SQL
[databases/postgresql]
Instalacja SGBD PostgreSQL – połączenie z bazą danych – utworzenie tabeli – wykonanie poleceń SQL SELECT, UPDATE, DELETE, INSERT – transakcja – skonfigurowane zapytania SQL
[databases/anysgbd]
Pisanie kodu niezależnego od SGBD
[databases/sqlalchemy]
ORM (Object Relational Mapper) SqlAlchemy – ORM umożliwia ujednoliconą pracę z różnymi SGBD - mapowanie klas / tabel SQL – operacje na klasach obrazów tabel SQL
[impots/v05]
Wersja 5 aplikacji do obliczania podatku – Wykorzystanie architektury warstwowej z wersji 04 orazORM SqlAlchemy do pracy z SGBD MySQL oraz PostgreSQL
[inet]
Programowanie internetowe – protokół TCP / IP (Transfer Control Protocol / Internet Protocol) – protokoły HTTP (HyperText Transfer Protocol) – SMTP (Simple Mail Transfer Protocol) – POP (Post Office Protocol) – IMAP (Internet Message Access Protocol)
[flask]
Usługi internetowe z wykorzystaniem frameworka Flask – wyświetlanie strony HTML – usługa internetowa jSON – żądania GET i POST – zarządzanie sesją internetową
[impots/http-servers/01]
[impots/http-clients/01]
Wersja 6 ćwiczenia praktycznego – Tworzenie serwisu internetowego jSON do obliczania podatku z wykorzystaniem architektury wielowarstwowej – Napisanie klienta internetowego dla tego serwera z wykorzystaniem architektury wielowarstwowej – programowanie klient/serwer – wykorzystanie modułu [requests]
[impots/http-servers/02]
[impots/http-clients/02]
Wersja 7 ćwiczenia dotyczącego aplikacji – ulepszona wersja 6: klient i serwer są wielowątkowe – narzędzia [Logger] do rejestrowania komunikacji między klientem a serwerem – [SendMail] do wysyłania wiadomości e-mail do administratora aplikacji
[impots/http-servers/03]
[impots/http-clients/03]
Wersja 8 ćwiczenia praktycznego – wersja 7 została ulepszona poprzez zastosowanie sesji
[xml]
Zarządzanie XML za pomocą modułu [xmltodict]
[impots/http-servers/04]
[impots/http-clients/04]
Wersja 9 ćwiczenia praktycznego – wersja 8 została zmodyfikowana w celu umożliwienia komunikacji klient–serwer w XML;
[impots/http-servers/05]
[impots/http-clients/05]
Wersja 10 ćwiczenia praktycznego – zamiast przetwarzać N podatników za pomocą N zapytań GET, stosuje się jedno zapytanie POST z N podatnikami w treści POST
[impots/http-servers/06]
[impots/http-clients/06]
Wersja 11 ćwiczenia praktycznego – zmiana architektury aplikacji klient/serwer: warstwa [métier] zostaje przeniesiona z serwera na klienta
[impots/http-servers/07]
Wersja 12 ćwiczenia praktycznego – w tej wersji zaimplementowano serwer MVC (Model – View – Controller), dostarczający na żądanie klienta, bez względu na to, czy chodzi o jSON, XML czy HTML. W niniejszym rozdziale zaimplementowano wersje serwera jSON i XML
[impots/http-clients/07]
Wdrożenie klientów jSON i XML serwera MVC w wersji 12
[impots/http-servers/07]
Wdrożenie serwera HTML w wersji 12 – wykorzystanie frameworka CSS Bootstrap –
[impots/http-servers/08]
Wersja 13 ćwiczenia praktycznego – refaktoryzacja kodu z wersji 12 – zarządzanie sesją za pomocą modułu [flask_session] i serwera Redis – wykorzystanie zaszyfrowanych haseł
[impots/http-servers/09]
[impots/http-clients/09]
Wersja 14 ćwiczenia praktycznego – implementacja URL z tokenem CSRF (Cross Site Request Forgery)
[impots/http-servers/10]
Wersja 15 ćwiczenia praktycznego – refaktoryzacja kodu z wersji 14 w celu obsługi dwóch typów akcji: ASV (Action Show View), które służą wyłącznie do wyświetlenia widoku bez zmiany stanu serwera, ADS (akcja „Do Something”), które wykonują operację zmieniającą stan serwera – wszystkie te akcje kończą się przekierowaniem do akcji ASV – pozwala to na prawidłowe zarządzanie odświeżaniem strony w przeglądarce klienta
[impots/http-servers/11]
Wersja 16 aplikacji – obsługa akcji URL z prefiksem
[impots/http-servers/12]
Wersja 17 aplikacji – przeniesienie wersji 16 na serwer Apache / Windows
[impots/http-servers/13]
Wersja 18 aplikacji – poprawia błąd występujący w wersji 17

Aplikacje klient-serwer do obliczania podatku wykorzystują następującą architekturę:

Image

Powyższa warstwa [web] została zaimplementowana z wykorzystaniem architektury MVC:

Image

Treść dokumentu jest bogata. Czytelnik, który dotrze do końca, uzyska dobry wgląd w programowanie internetowe MVC w języku Python / Flask, a ponadto dobre rozeznanie w programowaniu internetowym MVC w innych językach.

Dodatkowe informacje na temat frameworka Flask można znaleźć w dokumencie [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world] autorstwa Miguela Grinberga. Zapoznałem się z niektórymi fragmentami jego kursu i wydają mi się one bardzo pouczające. Autor omawia wiele pojęć, które nie zostały poruszone w niniejszym dokumencie.