Программа: Web-разработка на Python [ FastAPI + Git + SQL ]
Подробнее
Что нужно для старта
- Обязательные требования:
- Базовые знания Python (переменные, функции, классы, работа с файлами)
- Понимание основ ООП (классы, наследование, инкапсуляция)
- Умение работать с командной строкой/терминалом
- Рекомендуемые знания:
- Базовое понимание веб-технологий (HTTP, REST)
- Опыт работы с любым фреймворком (не обязательно Python)
- Что НЕ требуется:
- Опыт коммерческой разработки
- Знание конкретных фреймворков (Django, Flask)
- Опыт работы с Docker или облачными платформами
- Важно: Курс построен так, что даже если какие-то темы будут новыми, вы сможете освоить их в процессе обучения. Главное — готовность учиться и применять знания на практике!
Что вы получите
- Разрабатывать полнофункциональные REST API на FastAPI с аутентификацией JWT и валидацией данных через Pydantic
- Создавать и поддерживать базы данных, используя SQL и ORM SQLAlchemy с асинхронными запросами
- Применять систему контроля версий Git для управления кодом и организации командной работы через GitHub
- Строить микросервисные архитектуры с использованием RabbitMQ и API Gateway
- Проектировать масштабируемые приложения, применяя паттерны Clean Architecture и Onion Architecture
- Оптимизировать производительность API через кэширование, rate limiting и мониторинг с Prometheus/Grafana
- Тестировать приложения с помощью pytest, включая асинхронный код и защищенные эндпоинты
- Контейнеризировать приложения с Docker и развертывать их на серверах с использованием Nginx и HTTPS
- Управлять миграциями базы данных через Alembic и работать с файлами, включая потоковую передачу
- Внедрять фоновые задачи с Celery и Redis, а также реализовывать WebSocket-соединения
Для кого этот курс
- 👨💻 Начинающие Python-разработчики
- Которые хотят освоить бэкенд-разработку и создавать современные API
- 🔧 Backend-разработчики на других фреймворках
- Которые хотят перейти на FastAPI для более производительных проектов
- 📊 Data Scientists и аналитики
- Которым нужно научиться оборачивать модели в API для продакшена
- 🎓 Студенты технических специальностей
- Которые хотят получить востребованные навыки для старта карьеры
- 🚀 Технические предприниматели
- Которые планируют создавать MVP и масштабировать свои продукты
Программа курса
- Знакомство
- О курсе
- Обзор систем контроля версий
- Установка и настройка Git
- Первый репозиторий
- Первый коммит
- Индекс
- Подробнее о коммита
- Откат изменений
- Удаление файлов
- Переименование/перемещение файлов
- Просмотр изменений
- История коммитов
- Машина времени (изменение истории)
- Игнорирование файлов
- Домашнее задание
- Создание удаленного репозитория
- Клонирование репозитория
- SSH аутентификация
- Копирование чужого репозитория (fork)
- GitHub Copilot
- Файл Readme.md и разметка Markdown
- Альтернативы GitHub
- Домашнее задание
- Введение в ветки
- Переключение между ветками
- Создание, просмотр, удаление веток
- Слияние веток
- Конфликты при слиянии
- Экстренное переключение между задачами
- Безопасное обновление репозитория
- Поиск автора кода
- Запросы на слияние (Pull Request)
- Большая шпаргалка
- Знакомство
- О курсе
- Установка MySQL сервера
- Работа в терминале
- Графические IDE (Workbench, DBeaver)
- Взаимодействие с сервером
- Контрольные вопросы
- Решаем задачи. Пишем SQL код
- Первичные ключи
- Особенности типов данных и именование объектов
- Руководство по стилю SQL · SQL Style Guide
- Индексы
- Внешние ключи
- Подробнее про ALTER TABLE
- Особенности синтаксиса MySQL
- Виды связей между таблицами (1х1, 1хМ, МхМ)
- Таблицы-справочники
- ER-диаграмма
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Команда INSERT
- Команда SELECT
- Команда UPDATE
- Команда DELETE
- Бонус: Сервисы для генерации данных
- Импорт-экспорт данных
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Фильтрация (WHERE + LIKE)
- Сортировка (ORDER BY)
- Агрегирующие функции (COUNT, MIN, MAX, AVG, SUM)
- Группировка (GROUP BY)
- Фильтрация (HAVING)
- Отсутствие значения (NULL)
- Пейджинг (LIMIT + OFFSET)
- Условия, ветвления (IF, CASE)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Вложенные запросы (подзапросы)
- Объединения (JOIN) - Теория
- Объединения (CROSS JOIN, INNER JOIN)
- Объединения (LEFT JOIN, RIGHT JOIN)
- Объединения (FULL OUTER JOIN)
- Вложенные запросы VS объединения
- Соединения (UNION)
- Оконные функции
- Общие табличные выражения (CTE)
- Рекурсивные табличные выражения
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Решаем задачи. Пишем SQL код. Часть 3
- Решаем задачи. Пишем SQL код. Часть 4
- Полнотекстовый поиск
- Представления (View)
- Хранимые процедуры
- Пользовательские функции
- Переменные
- Триггеры
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Введение в транзакции
- Обработка исключений (ошибок)
- Уровни изоляции транзакций
- Блокировки таблиц
- Взаимная блокировка (deadlock)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код
- Пользователи
- Роли
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код
- Лишний JOIN
- Денормализация
- Настройки сервера
- Анализ запросов (EXPLAIN)
- Графический план исполнения запроса
- Исправление проблемных мест
- Графический план: показательные примеры
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Работа с логами
- Циклы
- Курсоры
- SQL инъекции
- Контрольные вопросы
- Решаем задачи. Пишем SQL код
- Что такое API и его типы?
- Изучаем REST. Архитектура и лучшие практики
- HTTP методы и идемпотентность
- HTTP запросы и ответы, коды состояний
- Что такое FastAPI?
- HelloWorld на FastAPI
- Знакомство с документацией API
- Маршрутизация в FastAPI
- Валидация параметров маршрутов (Path, Query)
- Проектирование и реализация REST API (GET, POST, PUT, DELETE)
- Модели Pydantic и их валидация, часть 1.
- Модели Pydantic и их валидация, часть 2.
- Использование шаблонов Jinja и форм в FastAPI
- Итоги раздела
- Основы взаимодействия Frontend с Backend
- Создание Backend (CRUD приложение на FAST API)
- Создание Frontend ( Vue.js )
- Тестирование взаимодействия
- Внедрение функций и классов зависимости
- Зависимости в операциях пути и глобальные зависимости
- Структурирование FastAPI, APIRouter и написание моделей Pydantic
- Подключение к базе данных используя SQLAlchemy
- Модели SQLAlchemy
- Отношения таблиц в SQLAlchemy, часть 1.
- Отношения таблиц в SQLAlchemy, часть 2.
- Миграции в SQLAlchemy, знакомство с Alembic
- Синхронные запросы SQLAlchemy, часть 1
- Домашнее задание
- Синхронные запросы SQLAlchemy, часть 2
- Подготовка к асинхронным запросам, переход на PostgreSQL
- Асинхронные запросы SQLAlchemy, часть 1.
- Домашнее задание
- Асинхронные запросы SQLAlchemy, часть 2.
- Аутентификация и авторизация. Модель User и регистрация.
- Реализация логина и JWT-аутентификации с ролями
- Интеграция аутентификации с эндпоинтами
- Реализация refresh-токенов
- Итоги работы
- Экзамен
- Пагинация и фильтрация товаров
- Поиск по товарам с использованием полнотекстового поиска
- Управление корзиной
- Управление заказами
- Управление медиафайлами (загрузка изображений товаров)
- Интеграция с платежными системами(на примере ЮKassa)
- Открытый бэклог: от идеи к реализации
- Версионирование API
- Middleware (CORS, Session, Custom)
- Логирование приложений
- Создание фоновых задач
- Асинхронные задачи с Celery и Redis
- Создание асинхронного WebSocket
- Знакомство с Docker
- Основные команды Docker
- Создание образов и запуск контейнера
- Контейнеризация FastAPI и написание Dockerfile
- Введение в Docker Compose
- Docker Compose на примере FastAPI, PostgreSQL
- Подготовка к деплою, Gunicorn и NGINX в Docker Compose
- Итоги работы
- Покупка VPS, доменного имени, привязка DNS
- Установка Docker на сервере
- Запуск Docker контейнеров на сервере
- Получение SSL-сертификата от Let's Encrypt и настройка HTTPS
- Вложенные маршрутизаторы APIRouter (Nested Routers)
- Управление API и версионирование(Path, Header)
- Управление API и версионирование (Accept Header)
- Создание собственных классов APIRoute
- Lifespan Events
- Глобальная конфигурация в FastAPI
- Response классы
- Продвинутые типы Pydantic
- Вложенные модели и циклические зависимости
- Расширенная валидация и модификация данных
- Дженерики Pydantic (Pydantic Generics)
- Сериализация и Десериализация
- Настройка поведения через ConfigDict
- Загрузка файлов в FastAPI
- Валидация файлов
- Скачивание файлов в FastAPI
- Потоковая передача данных (Streaming)
- Простая (монолитная) структура
- Модульная структура / Структура по функциональным возможностям
- Многоуровневая архитектура (Layered Architecture)
- Луковая архитектура (Onion Architecture)
- Чистая архитектура (Clean Architecture)
- Построение нескольких FastAPI сервисов
- Взаимодействие между микросервисами (HTTP)
- Взаимодействие между микросервисами (RabbitMQ)
- Взаимодействие между микросервисами (RabbitMQ), часть 2
- API Gateway
- Итоги работы
- Кэширование
- Rate Limiting
- Логирование в FastAPI
- Prometheus
- Grafana
- Введение в тестирование FastAPI
- Тестирование через TestClient в FastAPI
- Написание тестов с pytest
- Изоляция тестов
- Тестирование асинхронного кода
- Тестирование HTTP-запросов
- Тестирование защищенных эндпоинтов
- Моки и стабы
- Итоги
01Git [1] Основы Git
- Знакомство
- О курсе
- Обзор систем контроля версий
- Установка и настройка Git
- Первый репозиторий
- Первый коммит
- Индекс
- Подробнее о коммита
- Откат изменений
- Удаление файлов
- Переименование/перемещение файлов
- Просмотр изменений
- История коммитов
- Машина времени (изменение истории)
- Игнорирование файлов
- Домашнее задание
02Git [2] GitHub
- Создание удаленного репозитория
- Клонирование репозитория
- SSH аутентификация
- Копирование чужого репозитория (fork)
- GitHub Copilot
- Файл Readme.md и разметка Markdown
- Альтернативы GitHub
- Домашнее задание
03Git [3] Ветвление и командная работа
- Введение в ветки
- Переключение между ветками
- Создание, просмотр, удаление веток
- Слияние веток
- Конфликты при слиянии
- Экстренное переключение между задачами
- Безопасное обновление репозитория
- Поиск автора кода
- Запросы на слияние (Pull Request)
- Большая шпаргалка
04SQL [1] Установка рабочего окружения
- Знакомство
- О курсе
- Установка MySQL сервера
- Работа в терминале
- Графические IDE (Workbench, DBeaver)
- Взаимодействие с сервером
- Контрольные вопросы
- Решаем задачи. Пишем SQL код
05SQL [2] Проектирование БД (команды DDL)
- Первичные ключи
- Особенности типов данных и именование объектов
- Руководство по стилю SQL · SQL Style Guide
- Индексы
- Внешние ключи
- Подробнее про ALTER TABLE
- Особенности синтаксиса MySQL
- Виды связей между таблицами (1х1, 1хМ, МхМ)
- Таблицы-справочники
- ER-диаграмма
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
06SQL [3] Работа с данными (команды DML, CRUD)
- Команда INSERT
- Команда SELECT
- Команда UPDATE
- Команда DELETE
- Бонус: Сервисы для генерации данных
- Импорт-экспорт данных
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
07SQL [4] Основы SELECT запросов
- Фильтрация (WHERE + LIKE)
- Сортировка (ORDER BY)
- Агрегирующие функции (COUNT, MIN, MAX, AVG, SUM)
- Группировка (GROUP BY)
- Фильтрация (HAVING)
- Отсутствие значения (NULL)
- Пейджинг (LIMIT + OFFSET)
- Условия, ветвления (IF, CASE)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
08SQL [5] Сложные SELECT запросы
- Вложенные запросы (подзапросы)
- Объединения (JOIN) - Теория
- Объединения (CROSS JOIN, INNER JOIN)
- Объединения (LEFT JOIN, RIGHT JOIN)
- Объединения (FULL OUTER JOIN)
- Вложенные запросы VS объединения
- Соединения (UNION)
- Оконные функции
- Общие табличные выражения (CTE)
- Рекурсивные табличные выражения
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
- Решаем задачи. Пишем SQL код. Часть 3
- Решаем задачи. Пишем SQL код. Часть 4
09SQL [6] Продвинутые фичи SQL
- Полнотекстовый поиск
- Представления (View)
- Хранимые процедуры
- Пользовательские функции
- Переменные
- Триггеры
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Контрольные вопросы. Часть 3
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
10SQL [7] Транзакции
- Введение в транзакции
- Обработка исключений (ошибок)
- Уровни изоляции транзакций
- Блокировки таблиц
- Взаимная блокировка (deadlock)
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код
11SQL [8] Права доступа
- Пользователи
- Роли
- Контрольные вопросы. Часть 1
- Контрольные вопросы. Часть 2
- Решаем задачи. Пишем SQL код
12SQL [9] Вопросы оптимизации
- Лишний JOIN
- Денормализация
- Настройки сервера
- Анализ запросов (EXPLAIN)
- Графический план исполнения запроса
- Исправление проблемных мест
- Графический план: показательные примеры
- Контрольные вопросы
- Решаем задачи. Пишем SQL код. Часть 1
- Решаем задачи. Пишем SQL код. Часть 2
13SQL [10] Дополнительные темы
- Работа с логами
- Циклы
- Курсоры
- SQL инъекции
- Контрольные вопросы
- Решаем задачи. Пишем SQL код
14Введение в API
- Что такое API и его типы?
- Изучаем REST. Архитектура и лучшие практики
- HTTP методы и идемпотентность
- HTTP запросы и ответы, коды состояний
15Знакомство с FastAPI
- Что такое FastAPI?
- HelloWorld на FastAPI
- Знакомство с документацией API
- Маршрутизация в FastAPI
- Валидация параметров маршрутов (Path, Query)
16Создание CRUD-приложения на FastAPI
- Проектирование и реализация REST API (GET, POST, PUT, DELETE)
- Модели Pydantic и их валидация, часть 1.
- Модели Pydantic и их валидация, часть 2.
- Использование шаблонов Jinja и форм в FastAPI
- Итоги раздела
17FastAPI + Vue.js на примере CRUD приложения
- Основы взаимодействия Frontend с Backend
- Создание Backend (CRUD приложение на FAST API)
- Создание Frontend ( Vue.js )
- Тестирование взаимодействия
18Внедрения зависимостей
- Внедрение функций и классов зависимости
- Зависимости в операциях пути и глобальные зависимости
19Интернет магазин на FastAPI
- Структурирование FastAPI, APIRouter и написание моделей Pydantic
- Подключение к базе данных используя SQLAlchemy
- Модели SQLAlchemy
- Отношения таблиц в SQLAlchemy, часть 1.
- Отношения таблиц в SQLAlchemy, часть 2.
- Миграции в SQLAlchemy, знакомство с Alembic
- Синхронные запросы SQLAlchemy, часть 1
- Домашнее задание
- Синхронные запросы SQLAlchemy, часть 2
- Подготовка к асинхронным запросам, переход на PostgreSQL
- Асинхронные запросы SQLAlchemy, часть 1.
- Домашнее задание
- Асинхронные запросы SQLAlchemy, часть 2.
- Аутентификация и авторизация. Модель User и регистрация.
- Реализация логина и JWT-аутентификации с ролями
- Интеграция аутентификации с эндпоинтами
- Реализация refresh-токенов
- Итоги работы
- Экзамен
20Доработки интернет магазина
- Пагинация и фильтрация товаров
- Поиск по товарам с использованием полнотекстового поиска
- Управление корзиной
- Управление заказами
- Управление медиафайлами (загрузка изображений товаров)
- Интеграция с платежными системами(на примере ЮKassa)
- Открытый бэклог: от идеи к реализации
21Продвинутые возможности в FastAPI
- Версионирование API
- Middleware (CORS, Session, Custom)
- Логирование приложений
- Создание фоновых задач
- Асинхронные задачи с Celery и Redis
- Создание асинхронного WebSocket
22Docker + FastAPI
- Знакомство с Docker
- Основные команды Docker
- Создание образов и запуск контейнера
- Контейнеризация FastAPI и написание Dockerfile
- Введение в Docker Compose
- Docker Compose на примере FastAPI, PostgreSQL
- Подготовка к деплою, Gunicorn и NGINX в Docker Compose
- Итоги работы
23Деплой проекта через Docker
- Покупка VPS, доменного имени, привязка DNS
- Установка Docker на сервере
- Запуск Docker контейнеров на сервере
- Получение SSL-сертификата от Let's Encrypt и настройка HTTPS
24Продвинутый FastAPI
- Вложенные маршрутизаторы APIRouter (Nested Routers)
- Управление API и версионирование(Path, Header)
- Управление API и версионирование (Accept Header)
- Создание собственных классов APIRoute
- Lifespan Events
- Глобальная конфигурация в FastAPI
- Response классы
25Продвинутая обработка данных и Pydantic
- Продвинутые типы Pydantic
- Вложенные модели и циклические зависимости
- Расширенная валидация и модификация данных
- Дженерики Pydantic (Pydantic Generics)
- Сериализация и Десериализация
- Настройка поведения через ConfigDict
26Работа с файлами в FastAPI
- Загрузка файлов в FastAPI
- Валидация файлов
- Скачивание файлов в FastAPI
- Потоковая передача данных (Streaming)
27Архитектуры в FastAPI
- Простая (монолитная) структура
- Модульная структура / Структура по функциональным возможностям
- Многоуровневая архитектура (Layered Architecture)
- Луковая архитектура (Onion Architecture)
- Чистая архитектура (Clean Architecture)
28Микросервисы с FastAPI
- Построение нескольких FastAPI сервисов
- Взаимодействие между микросервисами (HTTP)
- Взаимодействие между микросервисами (RabbitMQ)
- Взаимодействие между микросервисами (RabbitMQ), часть 2
- API Gateway
- Итоги работы
29Производительность и оптимизация
- Кэширование
- Rate Limiting
- Логирование в FastAPI
- Prometheus
- Grafana
30Тестирование приложения
- Введение в тестирование FastAPI
- Тестирование через TestClient в FastAPI
- Написание тестов с pytest
- Изоляция тестов
- Тестирование асинхронного кода
- Тестирование HTTP-запросов
- Тестирование защищенных эндпоинтов
- Моки и стабы
31Завершение учебной программы
- Итоги
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «Программа: Web-разработка на Python [ FastAPI + Git + SQL ]» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 7 сентября 2026 г.

Stepik 

















