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

Starlette часто берут как «лёгкий ASGI-слой», а потом удивляются, почему приложение ведёт себя нестабильно. Главные причины обычно не в роутинге, а в том, как собраны middleware, зависимости и lifecycle.

Проверь базовый набор:
— не держи тяжёлую инициализацию в обработчике запроса;
— не запускай блокирующий I/O напрямую внутри async-кода;
— не полагайся на фоновые задачи для критичной бизнес-логики;
— не смешивай state на уровне модуля с данными конкретного запроса.

Ещё одна типовая ошибка — игнорировать границы между ASGI и синхронным кодом. Если внутри эндпоинта вызывается ORM, парсер или внешняя библиотека без обёртки, event loop начинает тормозить. Внешне это выглядит как «медленный Starlette», хотя проблема сидит в одной функции.

Хорошая схема простая: всё, что может ждать, уводишь в отдельный worker; всё, что должно отвечать быстро, оставляешь в request path; для shared-данных используешь явные объекты, а не глобальные переменные.

Если Starlette начинает «сыпаться», сначала смотри на блокировки, lifecycle и фоновые задачи — в этих трёх местах обычно спрятан реальный баг.
Python чаще ломается не в коде, а в том, как его запускают и читают

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

Для веб-проектов и автоматизации держите базовый набор привычек:
• валидируйте вход через pydantic или явные проверки;
• отделяйте чистую логику от I/O и сетевых вызовов;
• не смешивайте бизнес-правила с парсингом ответа;
• логируйте контекст ошибки, а не только текст traceback.

Отдельно следите за async: не вызывайте блокирующие библиотеки внутри event loop без обвязки, не создавайте лишние соединения в цикле и не надеетесь, что «маленькая задержка» спасёт от таймаутов. Для Django и FastAPI это особенно заметно на интеграциях, когда внешние сервисы начинают отвечать медленнее обычного.

И ещё одна вещь, которую стоит проверить в любом Python-проекте: повторяемость запуска. Если код нельзя поднять из чистого окружения по короткой инструкции, значит у вас не код, а набор удачных совпадений.
Forwarded from Natalia
ВПЕРВЫЕ! ТОЛЬКО ОДИН ВЕЧЕР!

🫥ПИАР-ВОЙС В ЭТОМ ЧАТЕ🫥

Участников никто не знает.
Откуда они? Хуй его знает.
Темы — просто пиздец!

• Аналитика на двух лидах
• Слив анлим бюджетов
• Как просрать медийку
• Где найти нормальную работу

• Как закупиться себе в карман

Все это для тех, кто придет на ВОЙС
Как делать PR, маркетинг и деньги в арбитраже трафика

На котором обсудим:
• На что компании еще готовы тратить деньги
• За чье внимание мы вообще конкурируем
• Что действительно работает, а что сливает бабки
• PR vs маркетинг
• Как измерить результаты кампейнов
• Что делать с запросом «хочу, чтобы про нас все знали»


Модераторы: @adv_god @natnetak

NO RESPECT CHAT • 27.08 • 19:00 GMT+3
Please open Telegram to view this post
VIEW IN TELEGRAM