Как выбрать между Django и FastAPI для нового проекта и почему
Что проверяют
Умеете ли вы выбирать по задаче, а не по моде, и знаете ли сильные стороны каждого.
Как отвечать
Django это каркас с батарейками: ORM с миграциями, админка, аутентификация и права, формы, шаблоны, готовые команды. Синхронный по своей природе, хотя асинхронные представления уже есть.
FastAPI это тонкий асинхронный каркас для API: маршрутизация, валидация через Pydantic, автоматическая документация OpenAPI, внедрение зависимостей. Всё остальное подбирается отдельно: SQLAlchemy и Alembic для данных, своя аутентификация, админки нет.
Когда брать Django: продукт с большой предметной областью и админкой, где нужны CRUD, роли, отчёты и работа контент-менеджеров. Django Rest Framework закрывает и API. Экономия времени в первые месяцы огромная.
Когда брать FastAPI: сервис, где основное это API, много одновременных соединений с внешними системами, вебсокеты или стриминг. Асинхронность здесь родная, а не приделанная, и на вводе-выводе это заметно.
Что стоит добавить: скорость самого каркаса редко бывает узким местом, им обычно оказывается база. Поэтому выбор чаще определяется тем, сколько готового вам нужно и какая у команды экспертиза. И честно сказать про смешанный вариант: Django для админки и предметной модели плюс отдельный сервис на FastAPI для нагруженной части.
Где спотыкаются
Сравнивают по бенчмаркам «запросов в секунду», игнорируя, что упрётесь в базу.
Берут FastAPI и полгода пишут то, что в Django есть из коробки.
Считают Django полностью синхронным, не зная про асинхронные представления.
Не учитывают, кто будет поддерживать проект через год.