
Чем популярнее становится FastAPI, тем сильнее критикуют Django. И не просто критикуют. Брезгуют? Пренебрегают? Всего понемножку. Всё чаще слышу, что Django - пережиток прошлого. Любой проект на Django - устаревший мусор. Любой "джанговод" - просто не знает, что тоже устарел. Объективно ли это? Нет, не объективно. Если отвёртка плохо забивает гвозди, это не значит, что отвёртки устарели — просто это не их задача.
Замечание: Иногда под FastAPI, я подразумеваю не только сам фреймворк, но и весь набор технологий вокруг него. Так уж повелось.
Немного о "войне фреймворков"
FastAPI ворвался на сцену как глоток свежего воздуха. Он как раз подоспел к буму микросервисов и подошел для них идеально. С самого начала его позиционировали как "современную замену" Flask, убийцу Django и так далее. С самого начала это было именно противопоставление FastAPI остальным фреймворкам. Не "новинка", а "замена".
И эта "замена" с каждым годом становилась популярнее. И вот, в 2025 году FastAPI обогнал Django по звёздам на GitHub. И ладно бы только по звёздам. В этом же году обошел и по числу вакансий. Всё, война проиграна и пора отправлять Django на свалку истории? Давайте не будем спешить — дьявол кроется в деталях.
Побег из оков Django

Противостояние культур разработки в Django и FastAPI особенно ярко проявляется при смене стека. Django, будучи "мега-фреймворком", предлагает разработчику целостную и структурированную экосистему. Эта экосистема идеальна для монолитных приложений. Миграция с него на минималистичный FastAPI ощущается как освобождение от оков. Но разработчик еще не в курсе, что ему предстоит их сделать самостоятельно.
Зато на обратном пути (FastAPI -> Django) больно становится сразу же. Разработчик, привыкший к полной свободе, воспринимает конвенции Django и его более размеренный, синхронный мир как шаг назад. Ограничения давят.
Но идеальных решений не бывает. Свобода FastAPI — это палка о двух концах. Получая эту свободу, мы сталкиваемся с необходимостью самостоятельно принимать решения по каждому аспекту проекта. Каждый такой шаг потенциально приводит к ошибкам, от которых Django с его "батарейками в комплекте" надежно защищает. Более того, в FastAPI разработчик оказывается втянут в бесконечные споры о технологиях и подходах, которые с Django почти не возникают. За долгие годы там утряслись все "бест-практис". Да и доступных решений на каждую из возможных проблем кратно меньше.
Самый модный фреймворк на деревне

В какой-то момент мода на микросервисы захватила умы разработчиков. Многие сломя голову бросились переписывать монолитные проекты. Гибкость, масштабируемость, простота — казалось, FastAPI откроет дверь в волшебный мир. Но часто этот переход был не более чем погоней за трендом: вместо решения реальных проблем команды хватались за новую технологию, потому что она выглядела привлекательно. В реальности же многие проекты, переписанные на FastAPI, превратились в распределенный монолит — громоздкие системы, которые лишь маскировались под микросервисы, но сохраняли все недостатки старых архитектур. Ошибка была не в самом FastAPI, а в слепом следовании моде, без учета того, решает ли новый подход конкретные проблемы проекта или просто добавляет сложности.
Те, кто не поддался соблазну микросервисов, нередко всё равно шли по пути "модернизации", переписывая монолиты с Django на FastAPI, ожидая, что смена фреймворка автоматически сделает проект гибче и современнее. Итог? Становилось гибче, но сильно сложнее. Time-to-market для новых фичей только увеличивался, потому что FastAPI приходилось насильно подстраивать под монолитные архитектуры, для которых Django был изначально оптимизирован. Выбор фреймворка ради его "современности" без глубокого анализа потребностей проекта — глупость. Мода на технологии должна уступать место прагматизму, иначе есть большой риск потратить время и ресурсы на красивую, но бесполезную (а то и вредную) перестройку.
Ищем и изобретаем свой велосипед

Дайте человеку выбор из тысячи похожих товаров, и он либо замрёт в нерешительности, либо возьмет что попало. Это называется паралич принятия решений, и FastAPI — амбасадор такого паралича. В Django на каждый из вопросов есть один, проверенный временем ответ. В FastAPI — десяток вариантов, и каждый требует обсуждений, взвешиваний и аргументации. Аргументировать приходится не только себе, но и команде. Это созвоны. Много созвонов. Это время. И это дорого.
Более того, обилие решений убивает интуицию. В Django-проектах многие вещи везде сделаны одинаково. Скорее всего первое предположение окажется верным. В FastAPI интуиция не работает — вы должны знать, как именно команда решила ту или иную задачу. Без этого вы либо сломаете что-то, либо потратите часы на разбирательства.
Кстати, если ваша команда составила список "обязательных" библиотек для FastAPI и унифицировала подходы и структуру во всех проектах — поздравляю, вы только что изобрели свой собственный Django, приколотив всё гвоздями!
Сразу в воду

Излишняя свобода FastAPI критически замедляет обучение новичков. Django в этом смысле выступает как строгий, но справедливый наставник. Он говорит: "Вот модели, вот вьюхи, вот шаблоны. Делай так, это правильно," — и ведёт за руку. Новичок открывает проект, читает официальную документацию и через пару дней пишет более-менее осмысленный код, неосознанно используя разные паттерны и подходы, на которых стоит Django.
Есть даже пример из жизни. До сих пор с ужасом вспоминаю свою первую попытку подключить БД к FastAPI. Синхронно? Асинхронно? Мне нужно самому создать сессии? Что за движок? Что за sessionmaker? Причем тут SQLAlchemy... StackOverflow предложил три разных способа — ни один не заработал. В Django я бы просто написал модель, запустил makemigrations и migrate. Всё. Как в документации.
Django учит через жесткую структуру и готовые инструменты. Это всё позволяет новичку быстро перейти от теории к практике. Ты можешь сделать, совершив по ходу минимум ошибок. И уже потом, набив определенный опыт, вникнуть в детали. Именно поэтому Junior-разработчик в Django тратит в разы меньше времени на базовые задачи, потому что фреймворк навязывает стиль разработки. Он говорит: "Начни с этого, а потом разберёшься". И за это ему огромное спасибо. В мире FastAPI тебя просто бросают в воду. Может быть не утонешь.
Проектные знания: Бремя FastAPI

FastAPI резко увеличивает долю «проектных знаний» — уникального набора решений, библиотек и конвенций, которые нужно выучить, чтобы работать в конкретном проекте. Какой ORM выбрали? Как организованы роуты? Как тестируем? Эти вопросы создают барьер, который замедляет онбординг и увеличивает риск ошибок, особенно при смене разработчиков. В монолитах, где важна скорость и предсказуемость, это становится серьёзной проблемой.
Django, напротив, сводит к минимуму проектные знания. Его инструменты настолько стандартизированы, что разработчик, знакомый с фреймворком, может сразу приступить к работе. Даже в разных проектах код выглядит знакомо.
Заключение: Django — король монолитов
В конечном счете, выбор между Django и FastAPI — это тест на инженерную зрелость. Соблазн выбрать FastAPI понятен: он обещает свободу, скорость и ощущение причастности к самому современному стеку. Но зрелость заключается в том, чтобы видеть дальше хайпа и выбирать инструмент, который решает именно вашу задачу.
Django предлагает нечто более ценное, чем свобода — он предлагает фокус. Он забирает на себя много рутинных архитектурных решений, позволяя команде сконцентрироваться на главном — бизнес-логике, которая и приносит ценность продукту. Так что не обижайте Django. Он не устарел. Он просто ждёт, когда мы перестанем гоняться за модой и снова начнём выбирать молоток, чтобы забивать гвозди. И в этой роли он по-прежнему король. ?
P.S Больше интересного в моем авторском канале про разработку, AI и технологии. Подписывайся, буду рад тебя видеть!
Комментарии (17)

xirustam
22.10.2025 15:35Хочется думать, что ваш мемный котёнок плачет от того, что у него конфетку отобрали, но мы то знаем, что котёнок просто болен, и у него воспалены глаза.
А так статью не читал, котёнка жалко слишком стало.

rysbaevv
22.10.2025 15:35Никто Джанго не обижает)))
Я на своем опыте часто Джанго использую из за админки, ORM под коробкой или там на какой то большой проект где требуется монолит. А FastAPI чисто чтобы написать там маленький сервис или что то связанное с ИИ. Считаю что сам фреймворк набрал свою популярность из за AI инженеров, в частности они больше используют его чем Джанго, им легче развернуть проект на FastAPI написать 2-3 апишки в одном файле под свою модельку ещё и асинхронно все работает, а не тянуть целый Джанго где есть куча ему ненужных вещей под капотом. Но в краце я с вами согласен отличная статья!

Pusk1
22.10.2025 15:35Какие то разные истории. По мне FAST API как замена flask на стероидах для микросервиса. Аля аналог гошечки. Пишешь асинхронный код в синхронном стиле. При этом та же боль с библиотеками и квалификацией разрабов. Да, когда у вас асинхронный код и по мешку экземпляров каждого сервиса нужны дополнительные навыки и знания.
Если у вас в проекте много CRUD и гридов, то Django. Прототип с UI тоже Django.

CaerDarrow
22.10.2025 15:35Нафига вообще долбиться в один фреймворк сидеть? Это - тупик. Особенно на питоне, где в каждой второй либе - минимальный пример 25-30 строк понятного кода. Вчера сидели с джангой, сегодня с фастапи и алхимией, завтра будет какой-нить модный сервак с поправкой на честный многопоток, или вообще все будем писать МСР для ллмок. Не забываем еще, что сбоку нас ждут разные БД, кэши, брокеры, кроны. Еще надо это все завернуть в контейнер, куда-то задеплоить и замониторить чтобы увидеть, если упало. И написать тесты еще, чтобы оно возможно вообще не упало.
P.S. любителям молотков, советую обратить внимание на кувалду - Bitrix)

olegl84
22.10.2025 15:35Пробовал Джанго лет 5 назад. После php фреймворков django ощущался как пережиток прошлого. Теория разработки давно ушла вперёд, а Джанго создавался по лекалам которые существовали 20 лет назад.

Tur8008
22.10.2025 15:35Джанго полностью соответствует своему кредо. Фреймворк для перфекционистов с дедлайнами! Лучше и не скажешь, по-моему. Люблю его! И Фастапи тоже люблю. Просто когда в руках молоток не нужно все вокруг считать гвоздями. Инструменты подбираются под задачи и под команду.

JobManKazakh
22.10.2025 15:35Проблема в скорости. То что для кого-то профессионально и на высоком уровне то для другого проблема оптимизации

warkid
22.10.2025 15:35А не потеряют ли значения фреймворки с развитием аи? Может не совсем, но в капой-то мере? Если притензия к FastAPI, что новички тормозят, по сравнения с Django, то, может, аи в этом помогут, нет?
RodionGork
Очень комично вы по поводу Django переживаете :)
У меня бэкграунд в Java был до недавнего времени - и в ней когда-то были популярны UI фреймворки, которых было прям довольно много. Настолько что я в какой-то момент даже на курсы пошёл где попросту все эти Struts/Faces/GWT показывали по штуке за занятие и вкратце рассказывали.
В целом это было конечно зря т.к. разработка уверенно свернула в идеологию "фронтенд отдельно, а на бэкенде только апи".
Это не мешает, конечно, активно использовать старые добрые PHP-шаблоны в собственных проектах - но писать об этом статью я бы пожалуй не стал :)
Kisel_n Автор
Комично или не комично, но лично знаю пару историй, где Django не взяли в проект из-за личного отношения к нему разработчиков. Со временем конечно же выяснилось, что зря. На Django то же самое сделали бы гораздо быстрее.
Собственно главный посыл - выбирать технологии без предрассудков, а сугубо ��од задачу. Django - просто хорошо известный мне пример, на котором я хотел это подсветить :)
Zalechi
я так понял:
Если ты молодой java программист, то дуй в Django.
Если ты матерый, и поставленные бизнесом задачи специфические, тонкие, то, есть смысл в FastAPI.
Pax_Ammaria
А при чём тут java ?
Zalechi
У меня заклинило.
swcasimiro
Так написали, будто в django используют только django template и никуда от этой концепции не уходили никогда. Существуют - djangorestframework, django ninja. Единственная проблема, которая может погубить фреймворк - долгое затягивание с async ORM. Уже несколько лет подогревают, выкатывая с третьей версии ассинхронщину, но никак полностью перейти не могут. Но я в любом случае выбираю даже медленный django, если проект не нуждается в rps бешенных.
Да и понты fastapi про скорость. Будто они о наличие golang и не слышали, который в этих показателях, извините меня за прямоту - но сажает на пятую точку, что php, что python, да и node.js в ту же корзину. И является при этом гибридом, не так долго писать, как на rust, но по-прежнему быстро.
Нужна будет админка с коробки - буду использовать django.
Нужна будет скорость - буду использовать fastapi.
Надоели сравнивать порш 911 и мерседес s класса. Его изобретали совершенно под другие задачи. Вы сравните fastapi с фреймворками на golang и все вот эти крылья, которые обещали огромные rps, сразу станут маленькими и не способными в гонке с другими) И останется только рассказывать, о том что ну на fastapi за то быстрее разрабатывать!
vb64
Золотые слова.
swcasimiro
А так я бы разрабатывал на том, что нравится и актуально. В данный момент обе технологии имеют спрос на рынке. За скоростью, если бежите. То вам в универсальный вариант - golang. Я на python пишу, явно не бенчмарки под лупой рассматривать, а быстро решать задачи. Вы уж извините!