Какой веб-фреймворк используется в проекте
Что проверяют
Вопрос звучит в обе стороны. Интервьюер спрашивает о вашем проекте, чтобы понять, насколько глубоко вы знаете свой стек: не только название, но и почему выбран именно он. Кандидат задаёт его работодателю, чтобы понять, с каким кодом придётся жить. В первом случае следом идёт «а почему не FastAPI» или «как у вас устроена асинхронность».
Как отвечать
Если спрашивают вас, назовите фреймворк, версию и окружение одной фразой, а потом причину выбора:
- Django: всё из коробки, ORM, миграции, админка, аутентификация. API обычно делают на Django REST Framework или Django Ninja. Асинхронные вьюхи есть, у ORM есть методы вроде
aget(), но многие операции внутри по-прежнему синхронные; - FastAPI: ASGI поверх Starlette, валидация и схема OpenAPI из аннотаций через Pydantic v2. ORM не входит, обычно берут SQLAlchemy 2.0 с async-драйвером и Alembic для миграций;
- Flask: минимальное ядро, остальное расширениями. Часто встречается в старых сервисах и внутренних инструментах, работает поверх WSGI;
- окружение: сервер приложений (Gunicorn, Uvicorn, Granian), версия Python, чем управляют зависимостями (
uv, Poetry,pip-tools).
Звучит это так: «Django с DRF, PostgreSQL, Celery для фоновых задач. Выбрали из-за админки и зрелой экосистемы, а эндпоинты с большим числом долгих соединений вынесены в отдельный сервис на FastAPI». Подставьте свой стек.
Если спрашиваете вы, уточните больше, чем название: версии фреймворка и Python, нет ли легаси на неподдерживаемых версиях, монолит или сервисы, что с тестами и типизацией. Старый Django без плана обновления означает, что заметная часть работы уйдёт на миграции.
Где спотыкаются
Называют фреймворк и замолкают. Без причины выбора и окружения ответ ничего не говорит о вашем уровне.
Путают асинхронность со скоростью: «FastAPI быстрее, потому что асинхронный». Время ответа упирается в базу и внешние вызовы, а блокирующий код внутри async def останавливает весь цикл событий.
Не знают версию фреймворка и Python в своём проекте. Это выглядит так, будто вы ни разу не открывали pyproject.toml.