Курс: Асинхронное программирование на основе веб - фреймворка FastAPI

Курс: Асинхронное программирование на основе веб - фреймворка FastAPI

Курс: Асинхронное программирование на основе веб - фреймворка FastAPI


Продолжительность курса: 40 ак. ч.

Описание курса:
FastAPI — это современный и высокопроизводительный веб-фреймворк для создания приложений на языке Python. Он основан на стандарте OpenAPI и использует модели Pydantic для обработки асинхронных задач и проверки данных. В этом курсе вы напишите полноценное веб-приложений на FastAPI и развернете его на сервере.

Аудитория:
• Программисты Python
• ИТ-специалисты
• Специалисты в области Data Science

Необходимая подготовка:
• Успешное окончание курса «Программирование на Python. Уровень 2. Объектно - ориентированное программирование», или эквивалентная подготовка.
• Успешное окончание курса «Система управления версиями Git», или эквивалентная подготовка.

Программа курса:
Модуль 1. Основы асинхронного программирования
Мы познакомимся с основные концепциями и принципами асинхронного программирования. Изучим примеры асинхронного программирования с использованием библиотеки asyncio. Разберем что такое GIL.
• Введение в асинхронность.
• Основные преимущества asyncio.
• В каких задачах полезно асинхронное программирование.
• В каких задачах бесполезно асинхронное программирование.
• GIL.
• IO bound и CPU bound.

Модуль 2. Awaitable объекты
Мы познакомимся с корутинами, разберем ключевые слова async и await. Изучим, что такое цикл событий.
• Coroutines / Корутины.
• Awaitable объекты.
• Ключевое слово await.
• Цикл событий (event loop).
• Task / Задачи.

Модуль 3. Введение в API
Мы познакомимся с API, архитектурой REST API. Изучим основные HTTP методы и коды ответа сервера.
• Что такое API и его типы?
• Изучаем REST. Архитектура и лучшие практики.
• HTTP методы и идемпотентность.
• Коды состояний HTTP.

Модуль 4. Знакомство с FastAPI
Мы познакомимся с основами FastAPI и создадим свое первое API, возвращающее "Hello World". Также мы подробно изучим процесс создания конечных точек с использованием системы маршрутизации в FastAPI. И научимся валидировать параметры, получаемые из пути и тела запросов.
• Что такое FastAPI?
• HelloWorld на FastAPI.
• Знакомство с документацией API.
• Маршрутизация в FastAPI.
• Валидация параметров маршрутов (Path, Query).

Модуль 5. Создание CRUD-приложения на FastAPI
Мы спроектируем и реализуем простой CRUD проект. Познакомимся с основными методами запросов GET, POST, PUT, DELETE, научимся создавать и валидировать модели класса Pydantic. Изучим моделирование ответов, обработку ошибок и коды состояния. Обсудим, как можно использовать шаблоны Jinja для создания представлений и вывода ответов из API.
• Проектирование и реализация REST API (GET, POST, PUT, DELETE).
• Модели Pydantic и их валидация.
• Модели ответов и обработка ошибок.
• Использование шаблонов Jinja и форм в FastAPI.

Модуль 6. Внедрения зависимостей
Мы рассмотрим шаблон внедрения зависимостей, используемый FastAPI для управления экземплярами и структурой проекта с помощью директивы Depends() и сторонних модулей расширения.
• Внедрение функций и классов зависимости.
• Зависимости в операциях пути и глобальные зависимости.

Модуль 7. Готовое веб приложение (блог / task scheduler)
Мы рассмотрим основные возможности FastAPI, научимся правильно структурировать проект. Узнаем об использовании APIRouter для организации проектов. Создадим подключение к БД через SQLAlchemy, научимся использовать Alembic для выполнения миграций. Научимся использовать сессии и напишем свои первые запросы, которые в дальнейшем мы сделаем асинхронными. Реализуем аутентификацию используя HTTP Basic Auth и научимся генерировать JWT токен. В дальнейшем будем использовать его, для проверки прав доступа к различным конечным точкам нашего API.
• Структурирование FastAPI, APIRouter и написание моделей Pydantic.
• Подключение к базе данных используя SQLAlchemy.
• Введение в модели SQLAlchemy.
• Отношения таблиц в SQLAchemy.
• Миграции в SQLAlchemy, знакомство с Alembic.
• Написание запросов к БД используя SQLAlchemy, часть 1.
• Написание запросов к БД используя SQLAlchemy, часть 2.
• Добавление асинхронности, переход на PostgreSQL.
• Добавление асинхронности в запросах SQLAlchemy.
• Реализация аутентификации используя HTTP Basic Auth.
• Реализация аутентификации с помощью JWT.
• Управление правами доступа в FastAPI.

Модуль 8. Docker + FastAPI и деплой проекта
Мы рассмотрим основные концепции Docker и на примере создадим свой контейнер с Python проектом. Далее мы упакуем FastAPI, PostgreSQL/MySQL, NGINX/Traefik в контейнеры и подготовим проект к деплою. Выполним деплой с помощью PaaS сервиса.
• Знакомство с Docker.
• Основные команды Docker.
• Создание образов и запуск контейнера.
• Контейнеризация Django и написание Dockerfile.
• Введение в Docker Compose.
• Docker Compose на примере FastAPI, PostgreSQL.
• Подготовка к деплою, Gunicorn и NGINX в Docker Compose.
• Настройка Docker-Compose для статических и медиа файлов.
• Деплой проекта.

Окончательная цена указывается в договоре на обучение.

Характеристики курса

  • Начало: Ведется набор
  • Вендор: Python
  • Код курса: PTN21
  • Город: Пермь, Москва,
  • Направление: Курсы для IT-специалистов
  • Академических часов: 40
  • Количество мест: 8
  • Очно: 88900 ₽
  • Дистанционно: 88900 ₽
Записаться на курс

Курсы повышения квалификации
и профессиональной переподготовки


График работы:
Мы отвечаем на звонки и письма в будние дни с 7:00 до 16:00 по Мск

8 800 (600)-66-16

Владелец сайта:
АНО ДПО «Учебный центр «ШИФТ»
ИНН 5904355180
ОГРН 1175958039586
Юридический адрес: 614010, г. Пермь, ул. Клары Цеткин, д. 14, офис 32.
E-mail: info@eshift.ru