ПОИСК
Быстрый заказ
ОЦЕНКА КУРСАобщая оценка курса:оценка преподавателя: Хочу скидку |
Целью обучения является формирование у слушателей понимания, как работает асинхронное программирование, познакомиться с web фреймворком FastAPI, а также формирование практических навыков создания REST API с помощью FastAPI; реализации работы с БД, добавления аутентификации и выполнения развертывания готового приложения, а также оптимизацией и масштабированием.
Выберите форму обучения,
чтобы увидеть актуальные даты:
РАСПИСАНИЕ ЗАНЯТИЙ
|
||||||||
После изучения курса вы сможете
- понимать основные концепции и принципы асинхронного программирования (на примерах асинхронного программирования с использованием библиотеки asyncio):
- понимать, что такое GIL;
- понимать корутины и ключевые слова async и await;
- понимать, что такое цикл событий;
- понимать API, архитектуру REST API;
- понимать основные HTTP методы и коды ответа сервера;
- понимать основы FastAPI;
- создавать простейшие API;
- понимать процесс создания конечных точек с использованием системы маршрутизации в FastAPI;
- валидировать параметры, получаемые из пути и тела запросов.
- проектировать и реализовывать простой CRUD проект;
- понимать основные методы запросов GET, POST, PUT, DELETE;
- создавать и валидировать модели класса Pydantic;
- понимать моделирование ответов, обработку ошибок и коды состояния;
- использовать шаблоны Jinja для создания представлений и вывода ответов из API;
- использовать шаблон внедрения зависимостей, используемый FastAPI для управления экземплярами и структурой проекта с помощью директивы Depends() и сторонних модулей расширения;
- понимать основные возможности FastAPI;
- структурировать проект правильно;
- использовать APIRouter для организации проектов;
- создавать подключения к БД через SQLAlchemy;
- использовать Alembic для выполнения миграций;
- использовать сессии;
- создавать запросы, которые в дальнейшем преобразуются в асинхронные;
- реализовать аутентификацию, используя HTTP Basic Auth, и генерировать JWT токен (для дальнейшего использования для проверки прав доступа к различным конечным точкам API);
- понимать основные концепции Docker;
- создавать собственные контейнеры с Python проектом;
- упаковывать FastAPI, PostgreSQL/MySQL, NGINX/Traefik в контейнеры и подготавливать проект к развертыванию;
- выполнять развертывание с помощью PaaS сервиса.
Содержание курса
Модуль 1. Основы асинхронного программирования
Модуль 2. Awaitable объекты
Модуль 3. Введение в API
Модуль 4. Введение в FastAPI
- Введение в асинхронность.
- Основные преимущества asyncio.
- Задачи, в которых полезно асинхронное программирование.
- Задачи, в которых бесполезно асинхронное программирование.
- GIL.
- IO bound и CPU bound.
Модуль 2. Awaitable объекты
- Coroutines / Корутины.
- Awaitable объекты.
- Ключевое слово await.
- Цикл событий (event loop).
- Task / Задачи.
Модуль 3. Введение в API
- Что такое API и его типы.
- REST. Архитектура и лучшие практики.
- HTTP методы и идемпотентность.
- Коды состояний HTTP.
Модуль 4. Введение в FastAPI
- Что такое FastAPI.
- HelloWorld на FastAPI.
- Знакомство с документацией API.
- Маршрутизация в FastAPI.
- Валидация параметров маршрутов (Path, Query).
Модуль 5. Создание CRUD-приложения на FastAPI
Модуль 6. Внедрение зависимостей
- Проектирование и реализация REST API (GET, POST, PUT, DELETE).
- Модели Pydantic и их валидация.
- Модели ответов и обработка ошибок.
- Использование шаблонов Jinja и форм в FastAPI.
Модуль 6. Внедрение зависимостей
- Внедрение функций и классов зависимости.
- Зависимости в операциях пути и глобальные зависимости.
Модуль 7. Готовое веб-приложение (блог / task scheduler)
Модуль 8. Развертывание проекта с использованием Docker и FastAPI
- Структурирование FastAPI, APIRouter и написание моделей Pydantic.
- Подключение к базе данных используя SQLAlchemy.
- Введение в модели SQLAlchemy.
- Отношения таблиц в SQLAchemy.
- Миграции в SQLAlchemy, знакомство с Alembic.
- Написание запросов к БД используя SQLAlchemy.
- Добавление асинхронности, переход на PostgreSQL.
- Добавление асинхронности в запросах SQLAlchemy.
- Реализация аутентификации используя HTTP Basic Auth.
- Реализация аутентификации с помощью JWT.
- Управление правами доступа в FastAPI.
Модуль 8. Развертывание проекта с использованием Docker и FastAPI
- Знакомство с Docker.
- Основные команды Docker.
- Создание образов и запуск контейнера.
- Контейнеризация Django и написание Dockerfile.
- Введение в Docker Compose.
- Docker Compose на примере FastAPI, PostgreSQL.
- Подготовка к деплою, Gunicorn и NGINX в Docker Compose.
- Настройка Docker-Compose для статических и медиа файлов.
- Развертывание проекта.
Слушатели
- разработчики;
- программисты;
- аналитики данных;
- ИТ-специалисты, желающие разрабатывать веб - приложения в FastAPI.
Предварительная подготовка
- знания и навыки программирования на Python в объеме курса Python3_Intro «Программирование на Python: Введение».