Курс на Stepik
Обложка курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS» на Stepik
4 250 ₽

Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS ★ 5.000

Открыть на
STEPIK.ORG

Самый полный курс по backend-разработке на Python. Фокус — практика: FastAPI, FastStream, Dishka, SQLAlchemy, RabbitMQ, NATS, Kafka, Celery, Taskiq, Redis, Docker, Poetry, DRF, Pydantic, ngrok и ещё 10+ инструментов. Архитектура, типы, миграции, ORM-стратегии, изоляция окружения и асинхронность — без магии, с полным пониманием. Курс даёт базу для уверенных pet-проектов и работы в команде. Присоединяйтесь — станьте востребованным инженером!

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Учеников на курсе 378
Сертификаты, выданные на курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Сертификатов выдано 53
Отзывы о курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Отзывов получено 2
Рейтинг курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Рейтинг курса 5.000
Уроки в курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Количество уроков 340
Тесты в курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Количество квизов 19
Задачи с кодом в курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Количество задач с кодом 4
Время прохождения курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Время прохождения курса —
Стоимость курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Стоимость курса 4 250 ₽ —
Обновления курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Обновления курса — —
Дата публикации курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Дата публикации курса — ———
Последнее обновление курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS»Последнее обновление — ———
Сложность easy — ———

Содержание курса

Разделы в курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS» 40 разделов Уроки в курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS» 340 уроков Тесты в курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS» 19 тестов Задачи в курсе «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS» 4 задачи Время прохождения курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS» 33 ч. Последнее обновление курса «Python Backend: FastAPI, SQLAlchemy, RabbitMQ, Kafka, NATS» обн. 3 октября 2026

Приветствие

5 уроков
1. Давайте знакомиться ↗
2. Рекомендации по курсам на Stepik и других ресурсах ↗
3. Рынок и вход: трудоустройство в IT без иллюзий ↗
4. SSR, SPA и причем тут Django и FastAPI ↗
5. Предложения по развитию курса ↗

Заметки о Linux

2 урока
1. Введение в Linux ↗
2. Советы и лайфхаки в Linux ↗

Математика для бэкендера

12 уроков
1. Введение ↗
2. Теория чисел ↗
3. Порядок выполнения арифметических операций ↗
4. Переменные ↗
5. Функции ↗
6. Суммы ↗
7. Возведение в степень ↗
8. Логарифмы ↗
9. Число e ↗
10. Натуральные логарифмы ↗
11. Пределы ↗
12. Производные ↗

Алгоритмы

17 уроков
1. Нотация «O большое» (Big O Notation) ↗
2. Константная сложность 𝑂 ( 1 ) ↗
3. Линейная сложность 𝑂 ( 𝑛 ) ↗
4. Квадратичная сложность 𝑂 ( 𝑛^2 ) ↗
5. O(log n) — Логарифмическая сложность ↗
6. Линейно‑логарифмическая сложность O(n * log n) ↗
7. Кубическая сложность 𝑂 ( 𝑛^3 ) ↗
8. Экспоненциальная сложность 𝑂 ( 2^𝑛 ) ↗
9. Факториальная сложность 𝑂 ( 𝑛 ! ) ↗
10. Сравнение сложностей ↗
11. Пространственная сложность ↗
12. Амортизированная сложность ↗
13. Как определить сложность ↗
14. Два указателя (Two Pointers) ↗
15. Префиксные суммы (Prefix Sums) ↗
16. Стек (Stack) ↗
17. Поиск в глубину (DFS - Depth-First Search) ↗

Задачки

2 урока
1. Введение ↗
2. Задачи по функциям и декораторам ↗

Что такое pipx и зачем он нужен?

5 уроков
1. Что такое pipx? ↗
2. Установка pipx и основные функции ↗
3. Руководство по pipx ↗
4. Список полезных программ, для pipx ↗
5. Как сделать Python-пакет совместимым с pipx ↗

Модуль logging (Логирование)

8 уроков
1. Введение в logging ↗
2. Уровни логирования ↗
3. Что такое basicConfig() и способы настройки логирования ↗
4. Как использовать уровни логирования? ↗
5. Именованные логгеры (getLogger) ↗
6. Handlers (обработчики) ↗
7. Formatters (формат сообщений) ↗
8. Настройка dictConfig — dev/prod окружений ↗

Заметки о Docker

5 уроков
1. Docker | Введение ↗
2. Portainer ↗
3. Флаги и различные команды ↗
4. Основные команды Docker Compose ↗
5. Практика: Docker compose, CloudBeaver, PostgreSQL, и MySQL ↗

Заметки о ngrok

2 урока
1. Что такое ngrok, установка ngrok ↗
2. Запуск ngrok для локального сервера ↗

Заметки о Django

5 уроков
1. Введение в Django ↗
2. Настройка VS Code для Django ↗
3. ORM - annotate, aggregate, агрегирующие функции ↗
4. Гайд по созданию Docker-контейнера Redis для Celery на Linux ↗
5. Полный разбор системы User в Django ↗

Poetry

1 урок
1. Введение в Poetry ↗

Django | OAuth 2.0 - социальная аутентификация

2 урока
1. Google-аутентификация подготовка проекта ↗
2. Google-аутентификация продолжение ↗

SQLAlchemy 2.0

63 урока
1. -- ВВЕДЕНИЕ -- ↗
2. Что такое SQL и зачем он нужен ↗
3. Что такое ORM и зачем он нужен ↗
4. Что такое SQLAlchemy: Core vs ORM ↗
5. Соединение с БД: клиент-сервер, пул, pgBouncer ↗
6. Установка окружения: Poetry, Docker, VS Code ↗
7. Структура учебного проекта ↗
8. -- ОСНОВЫ (СИНХРОННЫЙ SQLAlchemy) -- ↗
9. Engine: create_engine, строка подключения, dialect ↗
10. База данных: memory vs файл, DBeaver, WSL ↗
11. DeclarativeBase и первая модель ↗
12. Mapped[T] vs Annotated[T, mapped_column(...)] ↗
13. Session: что это и зачем ↗
14. CRUD: insert, select, update, delete (ORM) ↗
15. CRUD: Core-стиль ↗
16. Метод execute() и shortcuts (get, scalar, scalars) ↗
17. scalar(), scalars(), scalar_one_or_none(), mappings() ↗
18. values(), returning(), return_defaults() ↗
19. Жизненный цикл объекта: transient → pending → persistent ↗
20. Unit of Work и Identity Map ↗
21. flush() vs commit() ↗
22. autoflush: как работает ↗
23. expire_on_commit ↗
24. Состояния expired и detached ↗
25. expire(), refresh(), expunge() ↗
26. Транзакции: commit(), rollback(), begin(), sessionmaker() ↗
27. Типичные ошибки: DetachedInstanceError, IntegrityError ↗
28. -- СВЯЗИ МЕЖДУ ТАБЛИЦАМИ -- ↗
29. relationship() и back_populates: основы ↗
30. One-to-Many ↗
31. Many-to-One ↗
32. One-to-One (UniqueConstraint, uselist=False) ↗
33. Many-to-Many: secondary, ассоциативная таблица ↗
34. Самоссылочные таблицы: remote_side ↗
35. backref vs back_populates ↗
36. Каскадное добавление объектов в Session ↗
37. ondelete и onupdate управление каскадным поведением на уровне БД ↗
38. ForeignKeyConstraint для составных ключей ↗
39. Индексы и UniqueConstraint ↗
40. Типичные ошибки связей ↗
41. Примечание: кавычки в аннотациях типов ↗
42. Примечание: One-to-Many vs Many-to-One ↗
43. Примечание: указывать ли класс в relationship() ↗
44. -- ЗАГРУЗКА СВЯЗАННЫХ ДАННЫХ -- ↗
45. Подготовка асинхронного проекта: PostgreSQL + async/await ↗
46. Lazy loading и проблема N+1 ↗
47. selectinload() — основная стратегия для коллекций ↗
48. options() — механизм добавления стратегий ↗
49. joinedload() — основная стратегия для одиночных связей ↗
50. subqueryload() — стратегия нетерпеливой загрузки через подзапрос ↗
51. contains_eager() + join() — самописные JOIN ↗
52. raiseload() — запрет ленивой загрузки ↗
53. load_only(), defer — позволяет указать, какие колонки загружать ↗
54. with_loader_criteria() — глобальный фильтр к загрузке сущностей ↗
55. Настройка стратегии по умолчанию в relationship(lazy=...) ↗
56. FastAPI-эндпоинт с selectinload ↗
57. -- КАСКАДЫ ORM -- ↗
58. -- SELECT-ЗАПРОСЫ -- ↗
59. -- АСИНХРОННОСТЬ -- ↗
60. -- ИНФРАСТРУКТУРА -- ↗
61. -- ПРОДВИНУТЫЕ ТЕМЫ -- ↗
62. -- ПРАКТИЧЕСКИЕ ПРОЕКТЫ -- ↗
63. -- ПОДГОТОВКА К СОБЕСЕДОВАНИЮ -- ↗

Заметки о Django REST Framework (DRF)

12 уроков
1. Введение в Django REST Framework (DRF) ↗
2. Сериализаторы ↗
3. Serializers ↗
4. ModelSerializer ↗
5. APIView ↗
6. GenericAPIView ↗
7. Mixins (Миксины) ↗
8. Generics (Общие представления) ↗
9. ViewSets ↗
10. GenericViewSet ↗
11. ModelViewSet и ReadOnlyModelViewSet ↗
12. Пользовательские базовые классы ViewSet в Django REST Framework ↗

Celery + Django

1 урок
1. Основы Celery + Django ↗

Pydantic

2 урока
1. Руководство по дженерикам (generics) в Pydantic ↗
2. Введение в Pydantic ↗

Проект на DRF | Free Crypto API

5 уроков
1. О проекте ↗
2. DRF | Подготовка проекта ↗
3. DRF | Авторизация и аутентификация ↗
4. DRF | Приложение crypto ↗
5. Скоро увидимся... ↗

FastAPI + SQLAlchemy 2.0 + Poetry + Pydantic

33 урока
1. Подготовка для работы с FastAPI ↗
2. Введение в Poetry ↗
3. SQLAlchemy 2.0 | Дорожная карта изучения ↗
4. Содержание раздела SQLAlchemy 2.0 ↗
5. SQLAlchemy 2.0 | Введение в ORM ↗
6. SQLAlchemy 2.0 | Работа с объектами, связанными с ORM ↗
7. SQLAlchemy 2.0 | Декларативное отображение | Связи ↗
8. SQLAlchemy 2.0 | Самоссылочная таблица ↗
9. CRUD проект (подключение к БД и CRUD + asyncio) ↗
10. SQLAlchemy 2.0 | Создание асинхронной сессией, begin ↗
11. SQLAlchemy 2.0 | Основы работы с асинхронной базой данных ↗
12. SQLAlchemy 2.0 | SELECT-запросы. Часть 1 ↗
13. SQLAlchemy 2.0 | SELECT-запросы. Часть 2 ↗
14. Введение в Pydantic ↗
15. FastAPI | Самый быстрый старт | Часть 1 ↗
16. FastAPI | Настроки launch.json ↗
17. FastAPI | Самый быстрый старт | Часть 2 ↗
18. FastAPI | Зависимости ↗
19. FastAPI | Настройка авторизации ↗
20. Middleware (Промежуточный слой) ↗
21. CORS (Cross-Origin Resource Sharing ↗
22. FastAPI | APIRouter ↗
23. FastAPI | Request Parameters — Параметры запроса ↗
24. FastAPI | CRUD проект синхронный (SQLAlchemy + Alembic + isort) ↗
25. FastAPI | Проект TaskPilot ↗
26. FastAPI | Layered architecture — многоуровневая архитектура ↗
27. FastAPI | Рефакторинг проекта и Создание модели пользователей ↗
28. FastAPI | JWT, аутентификация и авторизация ↗
29. FastAPI | Google OAuth2 авторизация ↗
30. FastAPI | Яндекс OAuth2 авторизация ↗
31. FastAPI | Вконтакте OAuth2 авторизация (в процессе) ↗
32. FastAPI | Система прав пользователей ↗
33. FastAPI | Подтверждение email после регистрации ↗

Продвинутые возможности фреймворка FastAPI

2 урока
1. FastAPI | Lifespan — Events жизненный цикл приложения ↗
2. Кастомные исключения и единый обработчик в FastAPI ↗

Python для FastAPI‑разработчика

6 уроков
1. Введение ↗
2. Модуль pathlib ↗
3. Применение списков в FastAPI ↗
4. Уникальные маркеры и скрытые свойства ↗
5. Введение в корутины ↗
6. Dataclasses и Функция asdict() ↗

Redis + FastAPI

1 урок
1. Архитектура, структуры данных и практика ↗

Celery + FastAPI

6 уроков
1. Введение в архитектуру, конфигурация и продакшен‑паттерны ↗
2. Практика фоновых задач: FastAPI + Celery + RabbitMQ ↗
3. Периодические задачи в Celery (Celery Beat) ↗
4. Мониторинг и отладка Flower ↗
5. Мониторинг и отладка RabbitMQ UI ↗
6. Workers Guide ↗

TaskIQ + FastAPI

1 урок
1. Введение ↗

RabbitMQ + Микросервисы на FastAPI

7 уроков
1. Введение в микросервисы ↗
2. Сравнение брокеров сообщений ↗
3. RabbitMQ | Cоздание первого сервиса ↗
4. RabbitMQ | Cоздание второго сервиса ↗
5. RabbitMQ | aio-pika ↗
6. RabbitMQ | Работа с брокером ↗
7. RabbitMQ | Работа с базой данных ↗

Деплой | CI/CD | Работа на сервере | Практика

3 урока
1. Практические этапы ↗
2. Этап 1: Деплой FastAPI на VPS с Docker, Nginx и SSL ↗
3. Этап 2: CI/CD — автоматический деплой в GitHub ↗

FastStream + FastAPI

1 урок
1. Введение ↗

NATS и NATS JetStream + FastAPI

1 урок
1. Введение ↗

JWT Auth (Безопасность)

1 урок
1. Введение ↗

Самостоятельные проекты

2 урока
1. Введение и мотивация ↗
2. Техническое задание: ParkingFlow — система управления парковкой ↗

Проектирование систем и Clean Architecture на FastAPI

6 уроков
1. Введение ↗
2. Интерфейсы как «Контракт» в Чистой Архитектуре ↗
3. Реализация паттерна Unit of Work в асинхронном FastAPI ↗
4. Production-Ready Clean Architecture на FastAPI ↗
5. Clean Architecture - Тестирование FastAPI-проекта ↗
6. Анонс - Clean Architecture + DDD на FastAPI ↗

Тестирование (Pytest)

1 урок
1. Введение ↗

Base Project

6 уроков
1. Clean Architecture & DDD ↗
2. Пирамида зависимостей в Clean Architecture ↗
3. Domain Layer — бизнес-правила приложения ↗
4. Application Layer (Use Cases) — Оркестрация бизнес-логики ↗
5. Разбор Infrastructure Layer (Адаптеры) ↗
6. Сборка воедино — Как HTTP-запрос оживляет всю архитектуру ↗

Dishka

16 уроков
1. Проблема "ручного управления" зависимостями ↗
2. Что такое DI и зачем нужен контейнер? ↗
3. Почему Dishka? (Обзор возможностей) ↗
4. Наш первый контейнер ↗
5. Знакомство с Scope ↗
6. Создание Provider. Два подхода ↗
7. Финализация (очистка ресурсов) ↗
8. Продвинутые техники работы с провайдерами ↗
9. Массовая регистрация: provide_all ↗
10. Работа с интерфейсами и абстракциями: alias и AnyOf ↗
11. Композиция провайдеров ↗
12. Интеграция с FastAPI (самый частый сценарий) ↗
13. Асинхронность и Dishka ↗
14. Компоненты (Components) — изоляция зависимостей ↗
15. Тестирование с Dishka ↗
16. Итоги модуля: Dishka как фундамент чистой архитектуры ↗

Финальный проект: Фотохостинг (Layered Architecture)

13 уроков
1. UseCase — Сердце бизнес-логики ↗
2. Описание проекта ↗
3. Подготовка проекта ↗
4. Backend: База данных (PostgreSQL) ↗
5. Backend: Модуль auth ↗
6. Backend: Модуль users ↗
7. Backend: Модуль photos ↗
8. Backend: Подключаем Yandex Object Storage ↗
9. Реализуем модерацию изображений ↗
10. Вводим ограничения и правила на бэкенде ↗
11. Frontend: Реализуем на (Vue 3) ↗
12. Готовим Docker и деплой ↗
13. Пишем README ↗

ThreadPoolExecutor

14 уроков
1. Многопоточность в Python | Lock, RLock и Condition ↗
2. Введение в параллелизм в Python ↗
3. Базовый интерфейс Executor ↗
4. Что такое Future ↗
5. Что такое пул потоков ↗
6. Концепция и назначение ThreadPoolExecutor ↗
7. Создание пула потоков. Метод submit ↗
8. Работа с Future: result, exception, done ↗
9. Метод map: параллельная обработка коллекций ↗
10. Конструктор ThreadPoolExecutor: параметры и поведение ↗
11. Жизненный цикл пула потоков. Метод shutdown ↗
12. Обработка ошибок в ThreadPoolExecutor ↗
13. Подводные камни: дедлоки ↗
14. Практический пример: загрузка веб‑страниц ↗

Apache Kafka + FastAPI

13 уроков
1. Kafka | Введение и архитектура ↗
2. Kafka | Event-Driven архитектура событий, топиков и партиций ↗
3. Kafka | Введение в Broker ↗
4. Kafka | Запуск в Docker + работа с Python (aiokafka) ↗
5. Kafka | Кластер в Docker: Конфигурация и запуск ↗
6. Kafka | CLI и UI: управление топиками через терминал и интерфейс ↗
7. Kafka | CLI — знакомство с параметрами консольных утилит ↗
8. Kafka | Broker Configs ↗
9. Kafka | Updating broker configs — Динамическое обновление ↗
10. Kafka | Topic Configs ↗
11. Kafka | Group Configs ↗
12. Kafka | Producer Configs ↗
13. Продолжение следует... ↗

Мини‑гайд по технологиям

2 урока
1. Введение ↗
2. MkDocs — статический генератор сайтов ↗

Сокеты, TCP и event loop: для тех, кто не понял. Плюс WebSocket

12 уроков
1. Что такое сокет и как он работает ↗
2. Неблокирующие сокеты и select ↗
3. Первый event loop с select и мини‑ASGI‑сервер ↗
4. Введение в корутины ↗
5. Обработка ошибок и управление простоем сервера ↗
6. Что такое коллбэк (функция обратного вызова) ↗
7. Используем модуль selectors ↗
8. Зачем нужны генераторы и yield from ↗
9. Собираем всё вместе: асинхронный сервер ↗
10. Как этот материал помогает в asyncio ↗
11. Знакомство с WebSocket ↗
12. Финальный проект: эхо-сервер ↗

Следующая тема ....

1 урок
1. Давайте выберем тему вместе ↗

Планы развития курса

1 урок
1. Что добавить ↗