Какие Python библиотеки для веб-сервисов существуют
Что проверяют
Ориентируетесь ли вы в экосистеме и умеете ли объяснить выбор под задачу, а не просто назвать три фреймворка. Следом почти всегда спрашивают про разницу WSGI и ASGI и про синхронный код внутри асинхронного обработчика.
Как отвечать
Разделите ответ по слоям:
- фреймворки: Django с Django REST Framework или Django Ninja, когда нужны ORM, админка и аутентификация из коробки; Flask как минимальное ядро с расширениями; FastAPI поверх Starlette и Pydantic с валидацией по аннотациям типов и автоматической схемой OpenAPI; Litestar и aiohttp как асинхронные альтернативы;
- серверы приложений: Gunicorn для WSGI, Uvicorn или Granian для ASGI. Фреймворк сам по себе не сервер, в проде его запускает один из них;
- HTTP-клиенты:
requestsсинхронный,httpxумеет и так и так,aiohttpполностью асинхронный; - данные и валидация: SQLAlchemy 2.0 с асинхронным режимом и Alembic для миграций, Pydantic v2 для схем;
- фоновые задачи: Celery, Dramatiq, arq;
- другие протоколы:
grpcioдля gRPC, Strawberry для GraphQL.
Затем объясните выбор. Django оправдан, когда нужны админка и готовая модель пользователей. FastAPI удобен для API с большим числом внешних вызовов, где асинхронность даёт выигрыш, а схема OpenAPI заменяет ручную документацию. Flask хорош для небольшого сервиса, где набор расширений вы хотите выбрать сами.
Сильный ход: рассказать про свой сервис, какой стек выбрали и что поменяли бы сейчас.
Где спотыкаются
Вызывают requests или синхронный драйвер базы внутри async def в FastAPI. Цикл событий блокируется, и сервис обрабатывает запросы по одному. Нужен асинхронный клиент или обычный def, который FastAPI выполнит в пуле потоков.
Считают FastAPI сервером и не знают, что в проде его запускает Uvicorn или аналог.
Повторяют «Flask для маленьких, Django для больших» без критериев. Размер проекта тут вторичен, важнее, какие готовые компоненты вам нужны.