[Дмитрий Читалов] [Udemy] Создаем мессенджер на базе Python asyncio (2022)
Вы научитесь создавать асинхронные проекты средствами Python asyncio.
Чему вы научитесь:
1. Возможности библиотеки Python asyncio
2. Возможности библиотеки PyQt
3. Особенности реализации клиент-серверных приложений
4. Возможности библиотеки SQLAlchemy
Асинхронный механизм работы приложений все чаще реализуется разработчиками.
Он позволяет, не дожидаясь завершения выполнения одних задач, создавать и запускать новые задачи. Благодаря такому подходу обеспечивается быстродействие приложения, что является важным критерием при разработке программ. В Python нам доступна замечательная библиотека asyncio. Несмотря, на то, что она сравнительно новая, ее возможности уже широки применяются Python-разработчиками. Мы сможем применить ее в рамках работы над клиент-серверным приложением. Это будет мессенджер с графическим интерфейсом и базой данных. Конечно мы не сможем за один курс реализовать полноценный «боевой» мессенджер. Мы создадим упрощенную копию известных мессенджеров, но с необходимым базовым функционалом и привычным оконным интерфейсом.
Помимо изучения непосредственно библиотеки Python asyncio мы уделим большое внимание работе с ORM-библиотекой SQLAlchemy, через которую настроим взаимодействие с базой данных.
Также мы поработаем с библиотекой PyQt для создания привлекательной графической оболочки мессенджера. Работа над созданием мессенджера будет проходить в несколько этапов, начиная с освоения самой библиотеки Python asyncio и создания шаблона проекта, заканчивая сложной логикой взаимодействия серверного и клиентского приложения в части регистрации клиентов, выбора ими контактов для общения, удаления контактов, отправки сообщений. Мы научимся запускать одновременно несколько программ для отладки, а также создадим специальный запускаемый файл для тестирования работу приложения. Мы обязательно столкнемся со множеством ошибок, но успешно их преодолеем и получим благодаря ошибкам ценнейший опыт.
Содержание:
Модуль 1 - Введение в асинхронное программирование на Python
* Введение в курс
* Различия синхронного и асинхронного подходов
* Где применяется асинхронный подход
* Как связаны между собой понятия параллелизма, поточности и асинхронности
* Погружаемся в параллелизм, поточность и асинхронность
* Как организуются конкурентные вычисления в Python
* Многопоточность в Python
* Асинхронность в Python
* Параллелизм в Python
* Как определить подходящий механизм конкурентного выполнения кода в Python
* Для закрепления о многопоточности, асинхронности и параллелизме
* сопрограмма («корутина»)
* задача («таск»)
* цикл событий
* еще раз про цикл событий
* в чем разница корутинами и задачами
Модуль 2 - Создаём виртуальное окружение и шаблон проекта
* Создаем виртуальное окружение. Часть 1
* Создаем виртуальное окружение. Часть 2
* Устанавливаем служебные плагины
* Создаем начальную структуру проекта
Модуль 3 - Создаём начальный функционал серверной части приложения
* Реализуем модели. Часть 1
* Реализуем модели. Часть 2
* Реализуем класс-коннектор для работы с базой данных
* Реализуем класс-контроллер для операций с базой данных
* Реализуем миксины для операций с базой данных
* Реализуем миксины для операций с сообщениями
* Создаем конструктор сообщений
* Создаем главный серверный класс
* Переопределяем метод установления соединения
* Реализуем метод для аутентификации клиента
* Переопределяем метод получения данных
* Создаем запускаемый модуль для сервера
* Настраиваем главный метод серверного класса
* Настраиваем функцию парсинга аргументов сервера
Модуль 4 - Создаём начальный функционал клиентской части приложения
* Реализуем модели
* Реализуем класс-коннектор для операций с базой данных
* Реализуем класс-контроллер для операций с базой данных
* Реализуем миксины для операций с базой данных и сообщениями
* Создаем конструктор сообщений
* Создаем главный клиентский класс. Часть 1
* Создаем главный клиентский класс. Часть 2
* Создаем главный клиентский класс. Часть 3
* Создаем главный клиентский класс. Часть 4
* Создаем класс для аутентификации клиента
* Создаем запускаемый модуль для клиента
* Настраиваем главный метод класса. Часть 1
* Настраиваем главный метод класса. Часть 2
* Выполняем тестовый запуск проекта. Часть 1
* Выполняем тестовый запуск проекта. Часть 2
Модуль 5 - Создаём основу графического интерфейса сервера и клиента
* Устанавливаем библиотеку pyqt5. Часть 1
* Устанавливаем библиотеку pyqt5. Часть 2
* Создаем главное окно приложения
* Подключаем главное окно сервера к запускаемому файлу
* Проверяем работу графического интерфейса сервера
* Создаем форму для отправки сообщений
* Создаем форму для аутентификации
* Создаем форму для работы с контактам
* Создаем главное окно клиентского приложения
* Подключаем главное окно клиента к запускаемому файлу
* Проверяем работу приложения
Модуль 6 - Реализуем основную логику серверного и клиентского приложений
* Создаем класс-модель для таблицы с контактами
* Создаем класс-модель для таблицы с сообщениями
* Создаем классы-модели для клиента
* Реализуем метод для добавления контакта
* Реализуем метод для удаления контакта
* Реализуем метод для получения списка контактов для пользователя
* Реализуем метод для получения зарегистрированных пользователей
* Реализуем метод для получения истории входов пользователя
* Реализуем метод для перевода клиента в статус «оффлайн»
* Реализуем метод для получения статуса пользователя
* Реализуем метод для сохранения указанного сообщения
* Реализуем метод для получения сообщений пользователя
* Дополняем клиентский класс-контроллер методами для операций с базой данных
* Дополняем серверный и клиентский классы-миксины
* Дополняем конструктор сообщений клиентского приложения
Модуль 7 - Настраиваем взаимодействие сервера и клиента через графический интерфейс
* Дорабатываем окно авторизации
* Дорабатываем модуль run.py клиента
* Дорабатываем окно с контактами
* Проверяем работу приложения 1
* Дорабатываем главное окно серверного приложения
* Проверяем работу приложения 2
* Реализуем отображение окна с контактами
* Проверяем работу приложения 3
* Дорабатываем окно с чатом
* Дорабатываем модуль client_proto.py
* Корректируем главное окно серверного приложения
* Проверяем работу приложения 4
* Выполняем доработку серверного приложения
* Устраняем ошибки перед проверкой 5
* Проверяем работу приложения 5
* Выполняем итоговую доработку
* Проверяем работу приложения 6
Модуль 8 - Создаём лаунчер для запуска проекта
* Реализуем первый способ запуска
* Реализуем второй способ запуска
* Итоги курса
—————————————————————————
🔗 Продажник:
Доступно пользователям: Зарегистрированный
📥 СКАЧАТЬ КУРС:
Для просмотра содержимого вам необходимо Войти или Зарегистрироваться.
🔐 Хотите получить доступ?
Чтобы увидеть скрытые ссылки и ставить лайки, активируйте VIP-статус.
💎 ПОЛУЧИТЬ ДОСТУП Наш Telegram канал