WEB-разработка и работа с API
Тема дорожной карты · Python Programming
Современные веб-стэки в Python делятся на синхронные (Django, Flask) и асинхронные (FastAPI, Starlette, aiohttp). Для новых API связка FastAPI + pydantic даёт валидируемые модели запроса/ответа, OpenAPI-доку и async-хендлеры в одном флаконе. Под капотом приложение запускается ASGI-сервером (uvicorn, hypercorn) или WSGI (gunicorn). Сразу закладывай авторизацию, структурное логирование, observability (prometheus, OpenTelemetry) и постоянное хранилище через SQLAlchemy или ORM фреймворка.
Как это работает
WEB-разработка и работа с API в Python — это FastAPI (async, типизированный, OpenAPI-first), Flask (sync, минималистичный, большая экосистема) и Django (batteries-included, ORM, admin). requests — де факто sync HTTP-клиент; httpx — его async-преемник. Pydantic — рантайм-валидация данных из type hints, на нём строятся request/response модели FastAPI. SQLAlchemy — универсальный ORM (1.x classic или 2.0 typed); Alembic — миграции схемы.
Когда применять
FastAPI — для новых async API с автогенерированными доками и Pydantic-валидацией; Flask — для крохотных сервисов или когда команда знает Flask наизусть; Django — когда нужны admin + ORM + auth из коробки (CMS-like, внутренние тулы). requests — для разовых скриптов, httpx — когда приложение async. SQLAlchemy — когда SQL уходит за тривиальный CRUD; для разовой аналитики raw SQL через sqlite3/psycopg часто понятнее.
Типичные ошибки
Ловушки WEB-разработка и работа с API: блокирующие вызовы внутри async-эндпойнтов FastAPI (используйте httpx, не requests); деплой Flask на dev-сервере в production (нужны gunicorn/uvicorn + reverse proxy); чрезмерная вера в Pydantic на performance-critical путях (валидация стоит — модели делайте худыми); lazy loading SQLAlchemy триггерит N+1 запросы (.options(joinedload(...)) или eager loading); коммит секретов в settings.py (используйте переменные окружения).