Чему вы научитесь
Научитесь встраивать PostgreSQL в Python-бэкенд без ORM: от первого параметризованного запроса до надёжного слоя данных с транзакциями, пулом соединений, миграциями и идемпотентностью.
Сквозной проект — API заказов на FastAPI. Вы создадите каталог и клиентов, реализуете атомарное создание заказа с проверкой остатков, сохраните цены в истории, добавите повтор запроса без дублей и отмену с однократным возвратом резерва.
Что вы сделаете
- Напишете параметризованный SQL через Psycopg 3 и разберёте типы PostgreSQL.
- Организуете репозитории и транзакционные сценарии без SQL в HTTP-обработчиках.
- Разберёте JOIN, пагинацию, индексы, EXPLAIN и проблему N+1.
- Проверите конкурентную покупку последнего товара и обработаете конфликты.
- Добавите миграции, безопасные ошибки, health-check и transactional outbox.
- Протестируете API и слой данных на отдельной PostgreSQL-базе.
Формат
10 модулей, 40 уроков, 200 задач с автопроверкой и 10 локальных лабораторных. Текстовые объяснения, примеры и сквозной исходный проект. Браузерный SQL-тренажёр использует SQLite и стандартную библиотеку Python; особенности PostgreSQL, Psycopg и конкурентность закрепляются в локальном проекте на PostgreSQL. Отличия сред явно отмечены.
Production здесь относится к проверяемому слою данных и API, а не ко всей инфраструктуре компании. Полноценная авторизация, реальные платежи, облачный деплой и кластер PostgreSQL остаются за рамками курса.
О курсе
Для кого этот курс
Python-разработчики, которые знают основы языка и хотят уверенно работать с PostgreSQL без ORM. Подходит начинающим бэкендерам и разработчикам, использующим ORM, но желающим понимать SQL, транзакции и поведение базы под конкуренцией.
Начальные требования
Нужны базовый Python: функции, словари, списки, исключения; простое понимание SELECT, WHERE и JOIN. Опыт FastAPI и администрирования PostgreSQL не требуется. Для локальных лабораторных нужен компьютер с Python и Docker. Браузерные задачи работают со стандартной библиотекой Python и учебной SQLite; локальный проект — с PostgreSQL 17 и Psycopg 3.