Команда Python for Devs подготовила перевод ежегодного обзора экосистемы Flask от Miguel Grinberg. Автор подробно разбирает, каким оказался 2025 год для фреймворка: замедление разработки, минимум релизов, снижение активности сообщества и растущую конкуренцию со стороны FastAPI.


Активность проекта

Прежде чем переходить к цифрам, считаю нужным уточнить: при подготовке отчётов, которые вы увидите в этой статье, я не использовал большие языковые модели (LLM) или другие генеративные AI-инструменты. Соответственно, вероятность того, что я показываю вам «галлюцинированные» данные, равна нулю. При этом вероятность того, что я где-то ошибся, не равна нулю, так что, пожалуйста, проверяйте мои расчёты и, если заметите ошибки, сообщите мне — я их исправлю.

Итак, перейдём к делу. За весь 2025 год проект Flask выпускался всего два раза, и оба релиза были патч-релизами к версии 3.1.0, которая вышла в ноябре 2024 года. Коротко говоря, в 2025 году с Flask происходило очень немногое.

Чтобы поместить это в контекст, ниже приведена таблица с релизами, начиная с 2018 года — года выхода версии 1.0.0:

Год

Major.Minor

Количество патч-релизов

Всего релизов

2018

1.0

4

5

2019

1.1

3

4

2020

2

2

2021

2.0

4

5

2022

2.1, 2.2

6

8

2023

2.3, 3.0

6

8

2024

3.1

3

4

2025

2

2

Но, разумеется, релизы не рассказывают всей истории. Я также люблю смотреть на активность на GitHub, чтобы понять, как в целом обстоят дела с проектом. Ниже — таблица с количеством pull request’ов, которые были объединены по годам, также начиная с 2018 года:

Замёрженные PR

Flask

Werkzeug

Всего

2018

111

93

204

2019

142

103

245

2020

120

162

282

2021

178

175

353

2022

134

92

226

2023

111

133

244

2024

58

73

131

2025

26

17

43

Вероятно, в этой таблице не учтено небольшое количество коммитов, которые были сделаны напрямую, а не через pull request’ы, но при беглом просмотре истории коммитов не создаётся впечатления, что мейнтейнеры Flask часто так делают. Поэтому я считаю, что эта таблица достаточно точно отражает активность проекта и подтверждает нисходящий тренд, который я уже отмечал в прошлогоднем обзоре.

В этот раз я также решил посмотреть на pull request’ы, которые были закрыты без мерджа.

Незамёрженные PR

Flask

Werkzeug

Всего

%

2018

64

52

116

36%

2019

68

19

87

26%

2020

76

35

111

28%

2021

109

50

159

31%

2022

90

36

126

36%

2023

81

34

115

32%

2024

53

24

77

37%

2025

99

14

113

72%

И это выглядит весьма любопытно. Исторически доля всех pull request’ов, которые в итоге закрывались без мерджа, держалась примерно на уровне 30%, но в 2025 году она подскочила до 72%. Одно из возможных объяснений такого резкого роста заключается в том, что мейнтейнеры Flask считают проект в целом завершённым и потому менее заинтересованы в принятии вкладов от сообщества.

Другое объяснение — в том, что в 2025 году многие разработчики начали использовать генеративные AI-инструменты для создания pull request’ов. Это новый тренд, который я заметил и в своих собственных проектах. Такие pull request’ы почти всегда оказываются плохими, а авторы, которые их присылают, не имеют ни интереса, ни знаний, чтобы довести их до приемлемого состояния. Один из примеров, подтверждающих эту гипотезу, — простая проблема в документации. Для неё сейчас существует один открытый pull request, ожидающий ревью от мейнтейнеров, но я насчитал семь закрытых PR от людей, которые присылали свои собственные варианты исправления, причём большинство из них были созданы уже после текущего, находящегося в работе, и ни один из них корректно не решал описанную проблему.

Что нового в Flask

Для Flask это был чрезвычайно медленный год, так что по-настоящему нового и интересного здесь почти нечего отметить. Есть исправление проблемы, из-за которой stream_with_context не работал в асинхронных маршрутах. Помимо этого, было сделано несколько правок, связанных с типизацией Python, а также изменён порядок, в котором пробуются ротируемые секретные ключи. Изменения, попавшие в Werkzeug в течение 2025 года, также были незначительными и столь же малоинтересными.

Я просмотрел список из 43 pull request’ов, которые были замёржены в 2025 году в проектах Flask и Werkzeug, чтобы понять, не найдётся ли там чего-нибудь достойного упоминания, что не отражено в списках изменений или, возможно, ещё не выпущено. И пару любопытных моментов всё-таки удалось найти.

В обзоре за 2024 год я писал о планах объединить контексты приложения и запроса в единый контекст. Это изменение уже реализовано и войдёт в релиз 3.2.0, дата которого пока не объявлена. В целом моё отношение к этому нововведению можно выразить тремя буквами: «meh». Это крупное внутреннее изменение, которое упрощает и перерабатывает логику работы с контекстами, но для пользователей Flask, по крайней мере на первый взгляд, оно не приносит каких-то ощутимых преимуществ. По крайней мере, я их не вижу.

У этого изменения есть и хорошие, и плохие новости. Хорошая новость в том, что для предстоящего релиза 3.2 запланированы лишь минимальные изменения во внешнем поведении. Функции контекста запроса были перенесены в контекст приложения, но в версии 3.2 контекст запроса всё ещё будет существовать, хотя и в статусе deprecated. Вы можете увидеть предупреждения о депрецировании в своём коде или в расширениях Flask, которые напрямую обращаются к контексту запроса, но в остальном, будем надеяться, всё продолжит работать как раньше.

Плохая новость заключается в том, что контекст запроса будет полностью удалён с выходом версии 4.0. В этот момент, как я ожидаю, некоторые приложения перестанут работать и потребуют изменений в коде или обновления зависимостей, прежде чем их можно будет перевести на последнюю версию Flask. При этом мне неясно, когда именно выйдет 4.0, что в неё войдёт помимо этого изменения и сколько времени и сколько минорных релизов будет между 3.2 и 4.0. При текущем темпе разработки вообще сложно найти веские основания для нового мажорного релиза, так что, возможно, эта проблема ещё долго не станет актуальной. Посмотрим, как мейнтейнеры Flask будут управлять этим переходом.

Ещё одно интересное изменение, которое не упоминается в списке изменений, состоит в том, что, начиная с релиза 3.1.1, Flask и Werkzeug перешли на менеджер пакетов uv для задач непрерывной интеграции и выпуска релизов в GitHub Actions.

А что насчёт Quart?

Как, я уверен, большинство из вас знает, Quart — это асинхронно-ориентированный порт Flask, созданный Филом Джонсом и также поддерживаемый core-командой Flask, в которую входит и сам Фил.

К сожалению, в 2025 году у Quart не было ни одного релиза. Последний релиз — версия 0.20.0 — вышел в декабре 2024 года.

Если посмотреть на репозиторий Quart на GitHub, то за весь 2025 год там было всего 14 коммитов, и все они касались мелочей вроде добавления нового логотипа, улучшения type hints или исправления опечаток в документации.

Расширения Flask

В этот раз я решил быстро взглянуть на наиболее часто используемые расширения для Flask и посмотреть, насколько активно они развивались.

Расширение

Последний релиз

Последний коммит

Flask-Login

October 2023

August 2025

Flask-Security

November 2025

December 2025

Flask-HTTPAuth (*)

August 2023

December 2025

Flask-SQLAlchemy

September 2023

June 2025

Flask-Migrate (*)

January 2025

December 2025

Flask-Session

March 2024

April 2024

Flask-WTF

October 2024

December 2025

Flask-Mail

May 2024

June 2025

Flask-Admin

November 2025

December 2025

Flask-Babel

October 2023

June 2024

Flask-CORS

December 2025

December 2025

Flask-SocketIO (*)

December 2025

December 2025

Flask-Moment (*)

January 2025

December 2025

Я составил этот список по памяти, так что, пожалуйста, не обижайтесь, если я не упомянул какое-то из ваших любимых расширений. Кроме того, попадание в этот список не означает, что я их рекомендую. Более того, некоторые из этих расширений мне не нравятся, и я никогда не использую их в своих проектах. При этом я полностью поддерживаю те, что помечены (*), поскольку именно их я и сопровождаю.

Также важно отметить, что несколько из этих расширений в настоящее время поддерживаются организацией pallets-eco — группой волонтёров, которые занимаются обновлением расширений после того, как их первоначальные авторы или мейнтейнеры переключаются на другие задачи.

Flask по сравнению с другими веб-фреймворками

Давайте посмотрим, как Flask выглядит на фоне конкурирующих Python-веб-фреймворков.

Для начала сравним количество загрузок. Для этого я использую датасет PyPI BigQuery, который содержит статистику загрузок для всех пакетов PyPI.

Загрузки

Flask

Django

FastAPI

2023

1001M (73%)

135M (10%)

228M (17%)

2024

1160M (58%)

225M (11%)

612M (31%)

2025

1577M (46%)

313M (9%)

1523M (45%)

Из этой таблицы видно, что все три ведущих фреймворка нарастили число загрузок, но FastAPI сделал это с поразительной скоростью. В практическом смысле Flask и FastAPI теперь делят первое место.

При этом показатели загрузок Django выглядят подозрительно низкими. Я обратил на это внимание ещё в прошлом году, но так и не смог найти объяснение, поэтому, если у вас есть какие-то идеи, дайте знать. Ниже приведены запросы, которые я использовал для получения статистики загрузок за 2025 год — на случай, если вы захотите проверить их и разобраться в этой разнице:

SELECT COUNT(*) FROM `bigquery-public-data.pypi.file_downloads` WHERE TIMESTAMP_TRUNC(timestamp, DAY) BETWEEN TIMESTAMP("2025-01-01") AND TIMESTAMP("2026-01-01") AND file.project = "flask"
SELECT COUNT(*) FROM `bigquery-public-data.pypi.file_downloads` WHERE TIMESTAMP_TRUNC(timestamp, DAY) BETWEEN TIMESTAMP("2025-01-01") AND TIMESTAMP("2026-01-01") AND file.project = "django"
SELECT COUNT(*) FROM `bigquery-public-data.pypi.file_downloads` WHERE TIMESTAMP_TRUNC(timestamp, DAY) BETWEEN TIMESTAMP("2025-01-01") AND TIMESTAMP("2026-01-01") AND file.project = "fastapi"

Также можно взглянуть на последний опрос Python-разработчиков, который проводился в IV квартале 2024 года, но на момент написания этого текста в декабре 2025 года остаётся самым свежим. Вот как распределились три ведущих веб-фреймворка среди разработчиков в двух последних опросах:

Опрос

Flask

Django

FastAPI

2023

33%

33%

29%

2024

34%

35%

38%

Здесь мы снова видим, что FastAPI сейчас практически не остановить. И, предвосхищая вопрос из комментариев, отвечаю сразу: нет, в данный момент я не планирую мега-туториал по FastAPI. Но я никогда не говорю «никогда»…

На этом я завершаю обзор проекта Flask за 2025 год. Надеюсь, этот анализ оказался для вас полезным. Счастливого 2026 года — и надеюсь увидеть вас снова через год на очередном обзоре Flask!

Русскоязычное Python сообщество

Друзья! Эту статью подготовила команда Python for Devs — канала, где каждый день выходят самые свежие и полезные материалы о Python и его экосистеме. Подписывайтесь, чтобы ничего не пропустить!