Django обычно описывают как MTV: Model, Template, View. Это роли фреймворка, а не обязательная архитектура всей бизнес-логики; сложный проект может дополнительно использовать сервисные слои и модули доменов.
Data Mapper отделяет хранение объектов от их поведения; в SQLAlchemy этим занимается ORM и Session. Active Record связывает объект записи с методами сохранения и поиска, как у моделей Django.
Сначала остановлю выпуск и исправлю проверку принадлежности данных пользователю. Ускорение не оправдывает утечку чужих транзакций, а нестабильность теста не делает нарушение допустимым.
Сервер передаёт запрос Django через WSGI или ASGI, затем проходят middleware, выбор URL и вызов view. View формирует ответ, который проходит обратную цепочку middleware и возвращается клиенту.
Django задаёт более цельную структуру с ORM, админкой и другими встроенными компонентами. FastAPI сосредоточен на API и оставляет больше решений о слоях и инфраструктуре приложению.
Выбор зависит от профиля нагрузки и инфраструктуры, а не только от скорости фреймворка. FastAPI удобен для async API, Django — для приложения с развитой встроенной функциональностью.
select_related загружает одиночные связи SQL JOIN, а prefetch_related делает дополнительные запросы и связывает объекты в Python. Выбирайте только связи, действительно используемые при построении ответа.
Django удобен для продукта с ORM, миграциями, админкой и встроенными web-механизмами; FastAPI — для API с явными схемами и ASGI-подходом. Выбор зависит от задач и команды, не только от benchmark.
Сначала сравните ожидаемое и фактическое число строк, loops, сортировки и buffers. Индекс может не помочь при слабой селективности, несовместимом выражении, больших OFFSET или дорогих обращениях к таблице.
При создании класса ORM анализирует объявленные поля и формирует метаданные отображения. Django делает это через ModelBase; в SQLAlchemy механизм зависит от выбранного declarative API и версии.
Лучший первый шаг — снять профиль запросов и найти причину 35 обращений. После этого выборочно применяют select_related или prefetch_related к действительно нужным связям.
Django стоит рассмотреть для веб-продукта, которому нужны ORM, миграции, аутентификация, админка и согласованный набор встроенных инструментов, особенно при реляционной модели данных.