Python Web & Scripts — Django, FastAPI, скрипты
190 subscribers
93 photos
18 videos
1 file
248 links
Python для веба и автоматизации: Django, FastAPI, Flask, Starlette. Скрипты для парсинга, ETL, обработки данных, integrations. Async, pydantic, deployment patterns.
Канал сети public.tg.
Download Telegram
Starlette ломают не роуты, а мелкие ошибки в middleware и ответах

Если Starlette кажется «слишком тонким», проблема обычно не в фреймворке, а в том, как его используют поверх ASGI. Тут важны три вещи: жизненный цикл приложения, порядок middleware и типы ответов.

• Startup/shutdown лучше держать для инициализации клиентов, пулов и кешей. Не делайте там тяжёлую бизнес-логику: при падении инициализации приложение должно падать сразу, а не «жить полуживым».
• Middleware ставьте от внешнего к внутреннему по смыслу: логирование, трейсинг, авторизация, потом уже доменная обработка. Иначе отладка превращается в угадайку.
• Для JSON и стриминга используйте разные Response-классы. Если всё завернуть в один универсальный ответ, легко потерять заголовки, кеширование или корректную передачу тела.

Есть наблюдение которое стоит проверить: большинство багов в Starlette появляются не в endpoint-функциях, а на границе — где вы читаете request body, прокидываете state и смешиваете sync/async.

Если нужен стабильный сервис, начните с дисциплины вокруг ASGI-границ: отдельный middleware для каждого слоя ответственности, явные Response-типы и минимум магии в startup.