Язык Python в технологиях клиент - сервер и распределенных вычислениях [2022]
Академия Информационных Систем (АИС)
Основные вопросы: OOP в Python, Работа с механизмами обмена информацией - XML, JSON, SOAP, REST, клиентские приложения -PyQt.
Целевая аудитория:
Для слушателей, владеющих знаниями SQL, принципами и механизмами работы такими базами данных, как Oracle и PostgreSQL. Язык OOP - не помешает. Обработка данных предприятия с помощью языка Python - основная цель и задача курса.
Модуль 1
- Как выполняется приложение на языке Python, распределение областей памяти.
- Где Объекты и где Классы.
- Типы данных языка и переменные - все есть объект.
- Профилирование приложения, распределение памяти в куче, наблюдение и управление сборкой мусора, принудительное освобождение памяти, неизменяемые объекты и контейнеры.
- Объектная опция в Python - Инкапсуляция - Полиморфизм - Наследование - Абстракция, пакет abc.
- Статические и динамические методы, анатомия множественного наследования, базовые классы и интроспекция.
- Утиная нотация.
- Создание собственных классов, область видимости, атрибуты и методы классов, конструкторы и деструкторы.
- Понятие dataclass и механизмы заключения контрактов между классами пользователя и интерпретатором Python.
- Перегрузка методов, множественное наследование, инкапсуляция локальных переменных класса - классика и особенности языка Python.
- Определение свойств классов ().
- Функциональный подход в языке Python, функции модуля, область видимости - паеременые глобальные и локальные.
- Замыкания в языке Python, Лямбда выражения, функции в качестве параметров функций.
- Type функция и альтернативные механизмы описания объектов.
- Типы данных - контейнеры.
- Три вида контейнеров - списки , словари и кортеджи.
- Функциональность контейнера - изменяемость и постоянство.
- Ключевые методы классов, определяющие размещение объектов в контейнерах, сортировки объектов в контейнере.
- Строка - это так же контейнер, но с добавленным функционалом, функциональные строки, строки байт.
- Почему кодировка UTF-8, регулярные выражения.
- Коллекции, модуль abc, словари по умолчанию, стеки и очереди
- Работа с основными модулями интерпретатора Python.
- Модуль работы с операционной системой.
- Доступ и навигация по каталогам операционной системы.
- Управление файлами ОС.
- Определение Процесса OC.
- Доступ к трем стандартным потокам операционной системы.
- Вызов процесса OC и получение из него результата и процесса выполнения, в виде потока.
- Ожидание завершения внешнего процесса и получение результата.
- Процедура открытия файла в различных режимах.
- Усечение файла, добавление данных в файл и множество других операций.
- Дополнительные модули расширения языка Python.
- Взаимодействие с базой данных Oracle и Postgresql.
- Подключение модулей к песочнице Python.
- Соединение с базой данных из Python.
- Строка соединения, конфигурация сессии серверного процесса базы данных.
- Основные классы взаимодействия с базой данных - Connection и Cursor.
- Транзакционные механизмы взаимодействия с базой данных - особенности выполнения операций DDL, DCL, DML, SELECT и блоков кода в базе данных.
- Получение информации из курсоров в базе данных о выполнении операций SQL (число обработанных строк).
- Выполнение хранимых процедур в базе данных, передача параметров и возврат значений из хранимых процедур, особенности получения результатов ссылочных курсоров, описание полей возвращаемое курсоров, связь метаданных курсора и собственно данных.
- Разработка конкретного примера использования распределенных транзакций в базе данных.
- Управление блокировками записей в базе данных, взаимные блокировки и как их не допустить в приложении Python.
- Управление исключительными ситуациями, которые были возбуждены базой данных.
- Многопоточное и многопроцессорное программирование, Lock и Rlock, опасность взаимных блокировок, аналог Java — CountDownLatch, пул потоков, обмен информации между потоками.
- Пакет multiprocessing, логирование процессов, Fork-Join, различные способы запуска процессов в пуле, обмен информацией между процессами — Queue, Pipe
- Работа из Python с хранимыми процедурами и пакетными процедурами базы данных.
- Передача параметров и возврат значений в виде ссылочных курсоров.
- Доступ к потоку Oreacle dbms_pipe из Python приложения.
- Работа с большими (BLOB, LOB, XMLTYPE) типами данных.
- Организация потоков обмена байтовыми данными.
- XML документ в Python.
- Загрузка и выгрузка XML в,из базы данных, парсирование XML документов, SAX и DOM механизмы в модулях Python (xml, lxml), форматирование XML, XPATH запросы в Python.
- Доступ к серверу приложений по HTTP протоколу.
- Пример на основе сервера Wildfly (бывшее JBoss).
- Очень краткое введение в технологию распределенных вычислений, понятие Сервер приложений, многопоточность, сервис имен, пул соединений, безопасность, механизмы объектно-реляционного мапинга (русский - отдыхает), сервис обработки асинхронных сообщений, сервис заданий и другие полезные механизмы сервера приложений. (20 минут, см мои курсы по Java технологиям).
- Организация доступа из Python к сервисам REST сервера приложений.
- POST, GET, DELETE и прочие запросы.
- Особенности выполнения транзакционных запросов через REST сервисы.
- Модуль requests.
- Выполнение транзакций через REST сервисы.
- Извлечение данных, и их публикация в отчетах, с использованием REST технологий.
- Простой микросервис на Python с доступомв базу данных и отправкой сообщений клиенту
https://www.infosystems.ru/courses/avtorskie_unikalnye/PH002/