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

Django часто берут за скорость старта, но именно на старте закладывают проблемы, которые потом больно чинить.

— Логика в views и serializers. Когда бизнес-правила размазаны по представлениям, тесты становятся хрупкими, а изменения — дорогими. Выносите правила в services, use cases или доменные методы.
— Слишком ранний уход в raw SQL. ORM закрывает большую часть задач и помогает не плодить несовместимые запросы. SQL нужен, но как точечный инструмент, а не стиль жизни.
— Модели без явных ограничений. Если уникальность, nullability и связи не зафиксированы в схеме, баги начинают жить в приложении. База должна проверять то, что может проверить сама.
— Слабая работа с миграциями. Большие миграции, переименование полей «в лоб» и удаление без этапов отката — типичный путь к простоям.
— Игнорирование индексов и запросов. Django не спасает от N+1, тяжёлых select_related/prefetch_related и фильтрации по неиндексированным полям.

Есть наблюдение которое стоит проверить: если новый разработчик не может за 10 минут понять, где у вас живёт бизнес-логика, проект уже начал усложняться.

Держите границу: модель — про данные и инварианты, сервис — про сценарий, view — про HTTP. Эта дисциплина окупается быстрее, чем кажется.
Flask в проде ломается не из-за фреймворка, а из-за вокруг него

Flask часто выбирают за простоту, и это же потом оборачивается хаосом: приложение растёт, а границы ответственности никто не зафиксировал. Сам фреймворк маленький — поэтому архитектуру вы собираете сами.

Полезно сразу разделить:
— конфиг: отдельные классы под dev/stage/prod, без ручных правок в коде;
— app factory: чтобы тесты и фоновые задачи создавали приложение одинаково;
— extensions: инициализация через объект, а не через глобальные импорты;
— blueprints: когда модули уже не влезают в один файл;
— ошибки и логирование: единый формат, иначе отладка превращается в археологию.

Есть наблюдение которое стоит проверить: большинство проблем с Flask появляется не на уровне HTTP, а на уровне состояния. Глобальные переменные, кеши без границ, соединения, созданные «на всякий случай», — всё это работает до первого параллельного запроса или воркера.

Если проекту нужны async-эндпоинты, сложная схема валидации и много интеграций, Flask можно оставить, но обвязку придётся строить дисциплинированно. Если нужна быстая API-платформа с меньшим количеством самосбора, часто проще смотреть в сторону FastAPI или Starlette.

Правило простое: в Flask экономят не на коде, а на решениях, которые нужно принять заранее.
FastAPI ломают не роуты, а мелочи вокруг схем, зависимостей и async

FastAPI обычно стартует быстро и без боли. А потом начинаются проблемы не в коде эндпоинта, а в обвязке: валидация, зависимости, фоновые задачи, БД, сериализация.

Три места, где чаще всего ошибаются:
— смешивают sync и async без понимания, где именно блокируется event loop;
— тянут в обработчик тяжёлую логику вместо сервиса/репозитория;
— полагаются на автоматическую документацию и забывают проверять реальные схемы ответа.

Отдельно следите за pydantic-моделями. Если модель запроса и модель ответа живут одной жизнью, проект быстро начинает «подтекать»: лишние поля, неочевидные defaults, странные изменения контракта. Лучше держать DTO явными и не экономить на структуре.

Ещё одна типовая ловушка — зависимости через Depends. Это удобно, пока в них не прячут доступ к БД, кешу, конфигу и авторизацию одновременно. Такая зависимость становится мини-фреймворком и потом плохо тестируется.

Если FastAPI в проекте уже есть, проверьте три вещи: где у вас блокирующий код, насколько явны схемы API и можно ли тестировать бизнес-логику без запуска приложения. Именно там обычно находится большая часть стоимости поддержки.
ChatGPT даёт в 190 раз меньше переходов, но уже ломает привычный SEO-учёт

Ahrefs за полгода проанализировал миллиард точек данных: 28.3% страниц, которые ChatGPT цитирует снова и снова, в Google вообще не видны. При этом 43.8% всех цитат ChatGPT — топы и списки.

Для веб-команд это не повод переписывать весь контент под LLM. Но повод отделить «видимость в Google» от «цитируемости в ChatGPT» в аналитике. Завтра можно поднять простой Python-скрипт по логам/nginx/GA export: отдельно считать рефералы Google и ChatGPT, типы страниц, шаблоны URL и конверсию по ним.

Schema-разметка по этим данным не дала заметного эффекта для AI Overviews, AI Mode и ChatGPT. Значит, автоматизировать стоит не массовую разметку, а инвентаризацию страниц: топы, списки, сравнения, evergreen-гайды и их фактический трафик.
CPM в Facebook вырос на 12–18%, а креатив живёт 3–5 дней

В арбитраже 2024 окончательно стал Creative-First: при активном спенде средний срок жизни креатива сократился до 3–5 дней. В Tier-1 более 60% объявлений уже используют UGC или AI-графику.

Для Python-разработчика это не «заказать ещё баннер», а задача на конвейер: хранить гипотезы, генерировать вариации, проставлять UTM, резать видео, вести статусы модерации и быстро отдавать связки баеру.

Минимальный завтрашний слой: FastAPI-админка + Celery-воркеры для рендера/нарезки + таблица результатов по GEO и офферу. Когда креатив сгорает за неделю, ручной хаос начинает стоить дороже самого продакшена.

Вопрос не в том, делать ли автоматизацию. Вопрос — кто в команде первым перестанет переименовывать файлы руками.
На Githab выложили Opengram - самостоятельный сервер Telegram

Opengram — open-source аналог Telegram, который позволяет развернуть мессенджер на собственном сервере для внутренних нужд компании. Платформа поддерживает основной функционал официального клиента: группы, каналы, боты, видеозвонки и Bot API. Для работы можно использовать стандартные приложения Telegram (десктоп и мобила), изменив параметры подключения. Архитектура базируется на микросервисах в Docker Compose с инфраструктурой MongoDB, Redis, Ra…
До 30% конверсий теряются не в Facebook, а в вашем postback-слое

По данным AppsFlyer, до 30% конверсий могут теряться или уходить не в тот источник, если не настроена передача через S2S Postback. Параллельно в 2023–2024 средний срок жизни «чистого» BIN сократился до 2–3 недель.

Для Python-команд это не абстрактная боль арбитража, а задача на нормальный backend: принимать события, валидировать подписи, писать сырой лог, делать retries и дедупликацию по click_id/event_id. FastAPI + очередь + таблица idempotency часто дают больше денег, чем ещё один лендинг.

Завтра можно проверить три места: есть ли raw inbound log, сколько postback’ов падает по 4xx/5xx, и можно ли переотправить событие без двойной конверсии. Если нет — трекер сейчас живёт на доверии.
Tap trading - новая игра на основе курса Solana

Duelbits запустила Tap Trading — игру на предсказание движения курса Solana за 10 секунд на основе реального биржевого курса. По сути это переупакованные бинарные опционы с двумя кнопками (вверх/вниз) и графиком цены, без выбора времени и валютной пары. Разработчик позиционирует продукт как прорыв в криптоиграх, но реально это копия давно известной схемы. Обновление на рынке, где бинарные опционы никто не забывал и остаются привлекательными для …

🧠 ещё больше CPA-инсайтов → https://t.me/+iRC9bTowfLw4ZDc8
Python часто ломают не синтаксисом, а мелкими решениями в архитектуре

Если проект растёт, самые дорогие ошибки обычно выглядят буднично: один модуль делает всё, функции знают слишком много, а данные гуляют между слоями без контракта.

Что стоит проверять в Python-проекте:
— есть ли чёткое разделение: API, бизнес-логика, доступ к данным, интеграции;
— не тянете ли вы `requests`/ORM/HTTP-клиенты прямо в обработчики без обёрток;
— где живёт валидация: вьюха, сервис, pydantic-схема, модель;
— можно ли тестировать логику без базы и внешних API;
— нет ли скрытого состояния в глобальных переменных, кэше, синглтонах.

Для веба это особенно заметно в Django и FastAPI. Первый соблазн — писать «быстро и рядом с эндпоинтом». На старте это работает. Потом любая правка начинает цеплять соседние модули, а рефакторинг превращается в ручную раскладку домино.

Полезное правило: если функцию сложно объяснить одной фразой, она, скорее всего, делает слишком много. Если модуль нельзя удалить без боли для половины проекта, он уже стал складом, а не слоем 🧩

Хороший Python-проект не тот, где мало файлов. А тот, где каждый файл отвечает на один вопрос.
Copilot уже умеет ревью PR, но новый платный доступ GitHub притормозил

GitHub пишет, что Copilot может дать AI-code review вскоре после открытия pull request.
Для запроса ревью из CLI нужен GitHub CLI v2.88.0 или новее. Старт — только с платным планом Copilot: Pro, Pro+, Business или Enterprise.

Для Django/FastAPI-команд это не про «магический ревьюер», а про ускорение первого прохода по PR.
Полезно там, где много однотипных правок: API-эндпоинты, тесты, миграции, типизация, мелкие рефакторы.
Если у вас уже есть code review-гигиена, Copilot может снять часть рутины до того, как человек откроет diff.

Ирония в том, что спрос на Copilot уже дорос до паузы в новых paid subscriptions.
GitHub Copilot в PR получил разбор без магии — и там важны 4 настройки

Real Python выпустил квиз по GitHub Copilot Code Review в pull requests.
Внутри — как запросить ревью у Copilot, включить automatic reviews, задать custom instructions под правила команды и решить, где принять совет, а где его отклонить.

Для Django/FastAPI-команд это полезно не как «ещё один AI-бот», а как способ выровнять ревью на рутине: стиль, naming, типовые огрехи, повторяющиеся замечания.
Если у вас PR уже тонет в однотипных комментариях, такой квиз быстро покажет, какие настройки реально экономят время, а какие просто создают шум.

Похоже, следующий спор в команде будет не про «нужен ли Copilot», а про то, какие правила ему можно доверять.
Media is too big
VIEW IN TELEGRAM
Санкции на крипте: что делать с меченой криптовалютой

В конце мая 2026 года Великобритания санкционировала криптовалютные сервисы за работу с Россией, включая биржи Huobi Global и Exmo. Пользователи, получившие крипту от этих платформ, поймали метку «опасные источники» при AML-проверке, что затрудняет обмен и может привести к блокировке средств. При возникновении проблем нужно немедленно писать в поддержку с доказательствами легальности транзакций: скриншотами P2P-сделок, квитанциями от партнёрок …

🧠 Ещё больше инсайтов → в канале AFF.top
This media is not supported in your browser
VIEW IN TELEGRAM
В России введут комиссию за обмен USDT

Российский законопроект впервые чтения вводит регулирование криптовалют через пять категорий организаций и требует налогообложения прибыли криптообменников. Закон затронет популярные активы типа USDT и BNB, контролируемые недружественными странами. Основная цель — обязать обменники делиться доходами с бюджетом через комиссии и экономические стимулы, что в итоге увеличит затраты для рядовых пользователей и может стимулировать переход на альтернат…

➡️ Читайте на сайте: https://aff.top/blog/v-rossii-vvedut-komissiiu-za-obmen-usdt

🧠 Ещё больше инсайтов → в канале AFF.top
Python-скрипт можно сделать исполняемым без магии — и это снова проговорили в курсе Real Python

В курсе Structuring Your Python Script разбирают, куда складывать runnable-части, как группировать imports по стандарту, и как выносить constants при рефакторинге.
Отдельно показывают ясную точку входа через if __name__ == "__main__" и запуск скрипта на Unix-like системах через shebang.

Для тех, кто пишет утилиты, ETL-скрипты и маленькие сервисные CLI, это базовая гигиена репозитория.
Если скрипт живёт дольше одного спринта, порядок в imports и явный entry point экономят время на ревью и уменьшают число “а почему оно запускается само?”.

Скучно только до первого падения в проде.