Автор: Александр Морозов (co-founder & CTO, Datafold) · Python Channel · Moscow Python Conf++ 2021
Datafold — стартап из YCombinator, платформа мониторинга аналитических данных. Прошли акселератор, писали MVP за 1–2 месяца — за основу взяли Redash (MIT-лицензия, аналитические БД, SPA). Redash целиком построен на Flask: sqlalchemy, alembic, REST, auth, rate-limiters, CSRF, CLI. Через какое-то время решили менять стек.
Название доклада начинается с «Не highload» — и это принципиально. Причина переезда не в том, что Flask медленный. Причина в том, что типичный Flask-хэндлер — это огромный boilerplate для простых вещей: получить данные из тела запроса как JSON, провалидировать, сконвертировать. Хочешь нормальные сообщения об ошибках — boilerplate вырастает ещё в несколько раз. FastAPI решает это через type hints и Pydantic: код становится короче, читаемее и самодокументируемым.
Кому смотреть: разработчикам на Flask, которые думают о переходе на FastAPI — или уже переходят. Морозов рассказывает не то, что написано в документации, а конкретные проблемы при реальном переезде и как их обошли.
Из этого можно взять в работу: если у вас Flask и вы тратите значительное время на boilerplate для валидации запросов — это именно тот сигнал. FastAPI с Pydantic закрывает эту боль, а не задачу throughput.
Выбор Redash как основы был прагматичным: MIT-лицензия разрешает использовать код в закрытых форках, тематика близкая (аналитические БД, подключения к хранилищам данных), и это полноценный SPA с React. Не пришлось строить с нуля.
Проблема Flask проявилась в масштабе: каждый хэндлер требовал одних и тех же паттернов — и без фреймворкового решения для валидации это превращалось в ручной код. FastAPI через Python type hints и Pydantic делает описание схемы запроса и ответа декларативным, а валидацию — автоматической.
Доклад с Moscow Python Conf++ 2021. Статья спикера на Habr: https://habr.com/ru/companies/oleg-bunin/articles/575958/