Python 3.15 + Flask 3: руководство для backend-разработчика

Курс о том, как довести Flask-сервис до состояния, пригодного к эксплуатации: контракт API, валидация, SQLAlchemy и миграции, сервисный слой, аутентификация и права, фоновые задачи, кеш, тесты, Docker и деплой. 127 текстовых уроков и сквозной проект — API сети пунктов проката оборудования, который собирается от…
Средний уровень
6–8 часов в неделю, полное прохождение — 10–14 недель
Сертификат Stepik

Чему вы научитесь

  • Проектировать контракт REST API до написания кода: ресурсы, форматы, ошибки, правила совместимости
  • Собирать Flask-приложение фабрикой с конфигурацией по окружениям и разделением на слои
  • Описывать валидацию входа и формирование ответа схемами Pydantic 2
  • Работать с PostgreSQL через SQLAlchemy 2.0: модели, ограничения, индексы, транзакции
  • Писать миграции, применимые к непустой базе без длительных блокировок
  • Выносить бизнес-логику в сервисный слой и доступ к данным в репозитории
  • Реализовывать аутентификацию по токенам, роли, права и доступ к конкретному объекту
  • Обеспечивать идемпотентность операций и корректное поведение при конкурентном доступе
  • Разделять доменные и инфраструктурные ошибки и приводить все ответы к единому формату
  • Выносить отложенную работу в очередь задач и писать задачи, безопасные при повторе
  • Кешировать данные с осознанными ключами, сроками жизни и сбросом
  • Настраивать таймауты, повторы и размыкатель для обращений к внешним сервисам
  • Писать тесты четырёх уровней: правила домена, сценарии, HTTP, сквозные
  • Порождать документацию OpenAPI из кода и проверять совместимость API автоматически
  • Собирать компактный Docker-образ, настраивать Gunicorn и разворачивать сервис на VPS
  • Планировать релизы так, чтобы откат кода был безопасным

О курсе

Flask даёт HTTP-слой и останавливается. Работа с базой, валидация входных данных, аутентификация, права доступа, фоновые задачи, кеширование, документация — всё это backend-разработчик выбирает и собирает сам. Именно в этих решениях и состоит содержание курса.

Материал построен вокруг одного проекта — Depot, API сети пунктов проката профессионального оборудования. Домен выбран так, чтобы в нём естественно появились задачи, ради которых существует backend: конкурентный доступ к ресурсу при бронировании, права на конкретный объект, деньги и счета, отложенные операции, обращение к ненадёжному внешнему сервису.

Репозиторий проекта можно клонировать здесь.

Как устроен курс

Каждый слой появляется в ответ на конкретную задачу, а не потому, что «так принято». Сначала один обработчик отдаёт каталог. Затем в нём заводится дублирование — появляются blueprints. Затем логика бронирования перестаёт помещаться в обработчик — появляется сервисный слой. Затем тесты начинают требовать базы на каждый случай — появляются репозитории.

Такой порядок даёт понимание, зачем нужен каждый слой. Готовый шаблон проекта этого понимания не даёт.

Что разбирается подробно

Контракт API: формат ответов и ошибок, коды состояния, пагинация и сортировка, правила совместимости и версионирование.

Данные: SQLAlchemy 2.0, ограничения и индексы, транзакции и уровни изоляции, миграции, применимые к непустой базе без блокировок.

Архитектура: фабрика приложения, схемы валидации, сервисный слой, репозитории, единица работы, внедрение зависимостей без контейнера.

Безопасность: хеширование паролей, пара токенов с ротацией, роли и права, доступ к конкретному объекту, правила видимости в списках.

Устойчивость: разделение доменных и инфраструктурных ошибок, таймауты, повторы, идемпотентность, размыкатель, деградация вместо отказа.

Эксплуатация: структурные логи, метрики, проверки живости и готовности, Docker, Gunicorn, Compose, деплой на обычный VPS и безопасный откат.

Отдельное внимание — задачам, которые обычно узнают на инцидентах

Почему проверка пересечения интервалов в коде не спасает от гонки и что даёт гарантию. Что произойдёт при повторе запроса после таймаута. Почему доменная ошибка не должна возвращать 5xx и что при этом происходит с мониторингом. Как изменить схему базы без простоя и почему план отката — это совместимость, а не обратная миграция. Что случится с сервисом при отказе каждой из его зависимостей.

Чего в курсе нет

Пользовательского интерфейса, интеграции с реальным платёжным провайдером (используется учебная заглушка), Kubernetes, микросервисной декомпозиции, полнотекстового поиска на отдельном движке. Каждая из этих тем требует отдельного изучения и не добавляет понимания backend как такового.

Курс не обучает Python с нуля: главы 3–5 повторяют язык в объёме, нужном для backend, но предполагают, что программировать вы уже умеете.

Для кого этот курс

Курс рассчитан на разработчиков уровня junior+ и middle, которые уже пишут код и хотят научиться доводить сервис до эксплуатации. Он подойдёт, если вы: пишете на Python и хотите разобраться в backend системно, а не по фрагментам из статей; работаете с Flask и упираетесь в вопросы структуры проекта, транзакций, прав или деплоя; переходите в backend с другого направления и знаете другой язык; поддерживаете унаследованный Flask-проект и хотите понять, как привести его в порядок; готовитесь к собеседованиям и хотите отвечать по существу, а не по памяти. Курс не подойдёт, если вы только начинаете программировать: главы про язык предполагают, что базовые конструкции вам знакомы. Он также не подойдёт, если вам нужен именно Django или асинхронный стек: подходы переносятся, но весь код здесь — Flask и синхронный.

Начальные требования

Знание основ программирования: переменные, функции, условия, циклы, работа с исключениями. Опыт на любом языке подойдёт — материал по Python дан в объёме, нужном для backend.

Базовое представление о HTTP: что такое запрос, ответ, метод и код состояния.

Знакомство с SQL на уровне select, insert, join. Проектирование схемы разбирается в курсе.

Умение работать в терминале: запуск команд, переменные окружения.

Из программного обеспечения: Python 3.13 или новее (курс написан под 3.15, всё существенное работает и на предыдущих версиях), Docker и Docker Compose для PostgreSQL и Redis, любой редактор кода, git.

Оборудование: любая машина, на которой запускается Docker. Отдельный сервер не нужен: развёртывание разбирается на примере, а проверить его можно на локальном стенде.

Программа курса

В курс входят

  • 127 уроков
  • 105 тестов
загружаем...

Наши преподаватели

Certificate

Сертификат

Сертификат Stepik

Что вы получаете

  • 127 текстовых уроков
  • 105 задач с выбором ответа и разбором каждого варианта
  • Сквозной проект Depot: API сети пунктов проката, который собирается по ходу курса
  • Практическое задание и вопросы для самопроверки в каждом уроке
  • Готовые к использованию решения: единый формат ошибок, фабрика приложения, единица работы, обвязка фоновых задач, проверки границ слоёв
  • Проверочные списки: перед выкладкой, при проектировании эндпоинта, при написании задачи, при разборе инцидента
  • Набор скриптов проекта: развёртывание, откат, резервное копирование, проверка архитектуры
  • Инструкция по эксплуатации: что делать, когда сервис не отвечает, растёт доля ошибок или очередь задач

Сколько стоит обучение

1 500 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям