39. Висновок
Нагадаємо, що в цьому документі було виконано наступне:
Розділ | Досьє | Зміст |
Опис курсу | ||
Налаштування робочого середовища | ||
[bases] | Основи мови Python – структури мови – типи даних – функції – виведення на консоль – рядки з форматуванням – перетворення типів – списки – словники – регулярні вирази | |
[strings] | Запис символьних рядків – методи класу <str> – кодування/декодування символьних рядків у UTF-8 | |
[exceptions] | Обробка винятків | |
[fonctions] | Область дії змінних – спосіб передачі параметрів – використання модулів – Python Path – іменовані параметри – рекурсивні функції | |
[fichiers] | Читання/запис текстового файлу – робота з файлами, закодованими у форматі UTF-8 – робота з файлами jSON | |
[impots/v01] | Версія 1 практичного завдання: розрахунок податку на доходи. Додаток має 18 версій – у версії 1 реалізовано процедурне рішення | |
[imports] | Управління залежностями програми шляхом імпорту модулів — представлено метод управління залежностями, який використовується у всьому документі — управління Python Path | |
[impots/v02] | Версія 2 додатка базується на версії 1, об’єднуючи всі конфігураційні константи в один конфігураційний файл | |
[impots/v03] | Версія 3 додатка базується на версії 2, використовуючи функції, інкапсульовані в модуль — управління залежностями здійснюється через конфігурацію — введено файл jSON для зчитування даних, необхідних для розрахунку податку, та запису результатів розрахунків | |
[classes/01] | Класи — успадкування — методи та властивості — геттери/сеттери — конструктор — властивість [__dict__] | |
[classes/02] | Огляд класів [BaseEntity] та [MyException], що використовуються в подальшому тексті документа – [BaseEntity] спрощує перетворення об’єкта у словник та навпаки | |
[troiscouches] | Багатошарова архітектура та програмування за допомогою інтерфейсів. У цьому розділі представлено методи програмування, що використовуються в подальшому тексті документа | |
[impots/v04] | Версія 4 додатка — ця версія реалізує рішення з багаторівневою архітектурою, програмуванням за допомогою інтерфейсів та використанням класів, похідних від [BaseEntity] та [MyException] | |
[databases/mysql] | Встановлення SGBD MySQL — підключення до бази даних — створення таблиці — виконання команд SQL SELECT, UPDATE, DELETE, INSERT — транзакція — налаштовані запити SQL | |
[databases/postgresql] | Встановлення SGBD PostgreSQL – підключення до бази даних – створення таблиці – виконання команд SQL SELECT, UPDATE, DELETE, INSERT — транзакція — налаштовані запити SQL | |
[databases/anysgbd] | Написання коду, незалежного від SGBD | |
[databases/sqlalchemy] | ORM (об'єктно-реляційний мапер) SqlAlchemy – ORM дозволяє працювати в уніфікованому режимі з різними SGBD - зіставлення класів / таблиць SQL – операції з класами, що відображають таблиці SQL | |
[impots/v05] | Версія 5 програми розрахунку податку – Використання багатошарової архітектури версії 04 таORM SqlAlchemy для роботи з SGBD MySQL та PostgreSQL | |
[inet] | Інтернет-програмування — протоколи TCP / IP (Протокол управління передачею / Інтернет-протокол) — протоколи HTTP (HyperText Протокол передачі) – SMTP (Простий протокол передачі пошти) – POP (Поштовий протокол) – IMAP (Протокол доступу до інтернет-повідомлень) | |
[flask] | Веб-сервіси на базі веб-фреймворку Flask – відображення сторінки HTML – веб-сервіс jSON – запити GET та POST – управління веб-сесією | |
[impots/http-servers/01] [impots/http-clients/01] | Версія 6 практичного завдання — Створення веб-сервісу jSON для розрахунку податку з багатошаровою архітектурою — Написання веб-клієнта для цього сервера з багатошаровою архітектурою — програмування клієнт/сервер — використання модуля [requests] | |
[impots/http-servers/02] [impots/http-clients/02] | Версія 7 навчального завдання – вдосконалена версія 6: клієнт і сервер є багатопотоковими – утиліти [Logger] для реєстрації обміну даними між клієнтом і сервером – [SendMail] для надсилання електронного листа адміністратору програми | |
[impots/http-servers/03] [impots/http-clients/03] | Версія 8 практичного завдання — версія 7 вдосконалена завдяки використанню сеансу | |
[xml] | Управління XML за допомогою модуля [xmltodict] | |
[impots/http-servers/04] [impots/http-clients/04] | Версія 9 практичного завдання — версія 8 змінена для забезпечення обміну даними між клієнтом і сервером у форматі XML; | |
[impots/http-servers/05] [impots/http-clients/05] | Версія 10 практичного завдання – замість обробки N платників податків за допомогою N запитів GET використовується єдиний запит POST з N платниками податків у тілі запиту POST | |
[impots/http-servers/06] [impots/http-clients/06] | Версія 11 навчального завдання — змінено архітектуру «клієнт/сервер» додатка: рівень [métier] переноситься з сервера на клієнт | |
[impots/http-servers/07] | Версія 12 практичного завдання – у цій версії реалізовано сервер MVC (Model – View – Controller), який на запит клієнта однаково надає jSON, XML та HTML. У цьому розділі реалізовано версії сервера jSON та XML | |
[impots/http-clients/07] | Реалізація клієнтів jSON та XML сервера MVC версії 12 | |
[impots/http-servers/07] | Впровадження сервера HTML версії 12 — використання фреймворку CSS Bootstrap — | |
[impots/http-servers/08] | Вправа з застосування версії 13 — рефакторинг коду версії 12 — управління сесією за допомогою модуля [flask_session] та сервера Redis — використання зашифрованих паролів | |
[impots/http-servers/09] [impots/http-clients/09] | Вправа 14 — реалізація URL із використанням токена CSRF (Cross Site Request Forgery) | |
[impots/http-servers/10] | Версія 15 практичного завдання — рефакторинг коду з версії 14 для обробки двох типів дій: ASV (Action Show View), які слугують лише для відображення подання без зміни стану сервера, ADS (дія «Do Something»), які виконують дію, що змінює стан сервера — усі ці дії завершуються перенаправленням на дію ASV — це дозволяє правильно обробляти оновлення сторінки в браузері клієнта | |
[impots/http-servers/11] | Версія 16 додатка — управління URL із префіксом | |
[impots/http-servers/12] | Версія 17 програми — перенесення версії 16 на сервер Apache / Windows | |
[impots/http-servers/13] | Версія 18 програми – виправлення помилки у версії 17 |
Клієнтсько-серверні додатки для розрахунку податків реалізували таку архітектуру:

Вищезазначений рівень [web] було реалізовано з архітектурою MVC:

Зміст документа є насиченим. Читач, який прочитає його до кінця, отримає гарне уявлення про веб-програмування MVC на Python / Flask, а також про веб-програмування MVC на інших мовах.
Додаткову інформацію про фреймворк Flask можна знайти в документі [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world] автора Мігеля Грінберга. Я прочитав деякі розділи його курсу, і вони здалися мені дуже пізнавальними. Автор висвітлює багато понять, які не розглядаються в цьому документі.