Skip to content

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

Клієнтсько-серверні додатки для розрахунку податків реалізували таку архітектуру:

Image

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

Image

Зміст документа є насиченим. Читач, який прочитає його до кінця, отримає гарне уявлення про веб-програмування MVC на Python / Flask, а також про веб-програмування MVC на інших мовах.

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