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

В `asyncio` главная ошибка — считать, что `async def` автоматически делает код быстрым. Нет: если внутри сидит `time.sleep()`, тяжёлый `requests` или CPU-цикл, вы просто стопорите весь loop.

Три правила, которые спасают проекты:
• всё сетевое и I/O — через `await`;
• блокирующее выносите в `asyncio.to_thread()` или отдельный worker;
• не держите `await` внутри критической секции дольше, чем нужно.

Ещё одна типовая ловушка — запускать много задач без ограничений. `gather()` удобен, но без `Semaphore` легко устроить шип пик по памяти, соединениям и лимитам внешнего API. Для интеграций лучше сначала задать потолок параллелизма, потом масштабировать.

Если видите «async code», ищите два места: где реально есть `await`, и где код тихо работает синхронно. Обычно именно там и лежит узкое горло.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Facebook запретил рекламу онлайн-казино Mr Vegas

Британский ASA запретил рекламу казино Mr Vegas из-за «слишком милых» мультяшных животных в креативах — регулятор счёл, что такой стиль привлекает детей, в том числе через Facebook. Рекламодатель запустил кампанию в феврале, бан вышел в июле. Логика регулятора вызывает вопросы: дети неплатёжеспособны, а таргетировать их на гемблинг бессмысленно.

➡️ Читайте на сайте: https://aff.top/blog/facebook-zapretil-reklamu-onlain-kazino-mr-vegas

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
В Whatsapp скамят пользователей с помощью поддельных никнеймов

WhatsApp запустил никнеймы — и почти сразу начался скам. Мошенники регистрируют имена, похожие на бренды, звёзд и политиков, с минимальными опечатками.

Индия, где 500 млн пользователей WhatsApp, потребовала от Meta объяснений за 3 дня. Meta говорит, что точные совпадения заблокированы — но одна буква в другом месте защиту не триггерит.

Похоже, п…

➡️ Читайте на сайте: https://aff.top/blog/v-whatsapp-skamiat-polzovatelei-s-pomoschiu-poddelnykh-nikneimov

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Вышел ZCode - аналог Claude code

Вышел ZCode — десктопный аналог Claude Code от разработчиков GLM-5.2. Работает с API от Anthropic, поддерживает SSH-деплой на сервер, в том числе Linux.

Вместо пошаговых скриптов — система целеполагания Goal: закидываешь сложный промт, агент сам разбивает задачу и выполняет. Плюс управление через Telegram-бота.

Но главная фича — мультиагентность…

➡️ Читайте на сайте: https://aff.top/blog/vyshel-zcode-analog-claude-code

🧠 Ещё больше инсайтов → в канале AFF.top
FastAPI ломается не на роутинге, а на границе входных данных и зависимостей

В проектах на FastAPI почти всегда всплывают одни и те же места:
— слишком тонкие Pydantic-схемы, где обязательные поля проверяются уже в бизнес-логике;
— зависимости, которые тянут БД, кэш и внешний API в один слой;
— асинхронные обработчики, внутри которых внезапно живёт блокирующий код.

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

Ещё одна частая ошибка — делать dependency injection “по привычке”, а не по границам ответственности. Если зависимость только достаёт пользователя, она не должна знать про скидки, очереди и бизнес-правила. Как только dependency начинает разрастаться, тесты становятся дорогими, а ручка — неочевидной.

И отдельно про async: если внутри endpoint’а есть тяжёлый sync-код, его лучше вынести в пул или в отдельный воркер. Иначе FastAPI выглядит асинхронным только на бумаге, а под нагрузкой упирается в блокировки.

Если держать схемы, зависимости и async-границы раздельно, FastAPI остаётся быстрым не только на бенчмарке, но и в сопровождении.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Cloudeflare грозит Google блокировкой трафика

Cloudflare объявил: с 15 сентября 2026 года ИИ-краулеры будут заблокированы по умолчанию на всех сайтах с рекламой — включая Googlebot, Applebot и Bingbot.

Главная претензия — к Google: один и тот же бот индексирует страницы и собирает данные для обучения нейросетей, что даёт поисковику нечестное преимущество.

Но есть нюанс, который меняет всю к…

➡️ Читайте на сайте: https://aff.top/blog/cloudeflare-grozit-google-blokirovkoi-trafika

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Гайд: как заработать первые деньги на Pornhub

Pornhub — самый посещаемый адалт-сайт в мире, и на нём действительно можно зарабатывать. Но схема устроена иначе, чем кажется.

Автор залил ролики, набрал 16 000 просмотров — и получил 47 центов встроенной монетизации. Реальные деньги были в другом.

Есть нюансы с верификацией, голосом в роликах и законодательством РФ, которые ломают большинство с…

➡️ Читайте на сайте: https://aff.top/blog/gaid-kak-zarabotat-pervye-dengi-na-pornhub

🧠 Ещё больше инсайтов → в канале AFF.top
Автоматизация ломается не на коде, а на неучтённых входных данных и побочных эффектах

Если скрипт «работает у меня», это не признак готовности. В автоматизации обычно падают не алгоритмы, а края: пустые поля, дубликаты, таймауты, смена порядка колонок, неожиданный HTML, битые UTF-8 строки.

Перед запуском в проде проверь базу:
— есть ли идемпотентность, чтобы повторный запуск не плодил дубликаты;
— что делать при частичном успехе: откат, повтор, ручная очередь;
— где хранится состояние, чтобы процесс можно было продолжить после падения;
— какие ошибки считаются нормальными, а какие сразу стопят пайплайн.

Отдельно смотрите на логирование. Если в логах нет входных данных, идентификатора задачи и причины отказа, отладка превращается в угадайку. Для фоновых задач полезно писать не только traceback, но и короткий контекст: источник, шаг, размер пачки, время ответа.

Ещё один частый провал — скрытые зависимости: локальный путь на диске, переменная окружения без значения, внешний сервис с неявным лимитом, cron без блокировки параллельного запуска. Скрипт должен либо явно проверять такие вещи на старте, либо падать сразу и понятно.

Автоматизация живёт долго только там, где каждый шаг можно повторить, остановить и безопасно запустить снова.
7 привычек Python-кода, которые экономят часы на поддержке проекта

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

— Имена функций и переменных должны объяснять намерение, а не хранить исторический след. `process_data` хуже, чем `build_invoice_rows`.
— Не смешивайте I/O, бизнес-логику и форматирование ответа в одном модуле. Когда всё в одном файле, тесты превращаются в боль.
— Любой код с сетью, БД или файловой системой держите на границе системы, а не внутри вычислений.
— Если функция длиннее экрана, сначала ищите лишнюю ответственность, а не «нехватку комментариев». Комментарий не спасает от хаоса.

Есть наблюдение которое стоит проверить: чем меньше скрытого состояния, тем дешевле отладка. Передавать данные явно почти всегда лучше, чем тащить их через глобалы, singleton’ы и неочевидные импорты. Это особенно заметно в скриптах, которые внезапно стали «мини-сервисами».

Ещё один маркер зрелого кода — предсказуемые ошибки. Вместо голого `except:` ловите конкретные исключения и возвращайте понятный контекст: какой файл, какой пользовательский ввод, какой шаг упал. Тогда лог перестаёт быть детективом.

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

Частая ошибка — считать модель «контейнером для полей». На деле Pydantic задаёт контракт между JSON, сервисом и БД. Если контракт размыт, потом всплывают сюрпризы: пустая строка вместо None, лишний ключ в payload, тихо склеившийся тип int/str.

Проверь базовые места:
— включай строгую валидацию там, где ошибка дороже автоприведения;
— разделяй входные и выходные схемы, не переиспользуй одну модель везде;
— явно помечай optional-поля, не надейся на «и так понятно»;
— для вложенных структур держи отдельные модели, а не dict на всё подряд.

Ещё один источник боли — дефолты и алиасы. Дефолт должен быть безопасным, а alias — стабильным контрактом, а не косметикой. Если поле приходит из внешнего API, лучше сразу описать его имя, формат и ограничения, чем потом ловить баги на сериализации.

Хорошее правило: модель должна объяснять, какие данные разрешены, а не маскировать чужие ошибки. Тогда Pydantic начинает экономить часы на отладке, а не добавлять их.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Сбер запустит свой криптокошелёк

Сбер готов запустить криптокошелёк — инфраструктура уже есть. Ждут только закона о регулировании крипты, который планируют принять к 1 сентября 2026 года.

Хранить и, судя по всему, обменивать крипту можно будет прямо в приложении — без сторонних обменников.

Но есть один нюанс, из-за которого обменники никуда не денутся. 🔍

➡️ Читайте на сайте: https://aff.top/blog/sber-zapustit-svoi-kriptokoshelek

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Индия потребовала от Telegram удалять пиратский контент

Индия потребовала от Telegram удалять пиратский контент — претензия в том, что платформа не ограничивает размер файлов, что позволяет свободно распространять фильмы.

Дуров ответил, что Telegram годами работает в Индии без какой-либо коммерческой выгоды для себя.

Почему давление началось именно сейчас — вопрос открытый. Возможный ответ — в блоге.

➡️ Читайте на сайте: https://aff.top/blog/indiia-potrebovala-ot-telegram-udaliat-piratskii-kontent

🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google ads меняет стратегию по конверсиям

Google меняет логику автоматических стратегий ставок: с 17 августа 2026 года кампании будут строже придерживаться указанного целевого CPA, а не давать лиды по минимально возможной цене.

Если сейчас твоя кампания даёт лиды по $5, а цель стоит $10 — после обновления алгоритм «поднимет» фактическую стоимость лида к целевой, зато отдаст больше трафик…

➡️ Читайте на сайте: https://aff.top/blog/google-ads-meniaet-strategiiu-po-konversiiam

🧠 Ещё больше инсайтов → в канале AFF.top
Pydantic ломают не типы, а привычка валидировать «на глаз»

Если модель в Pydantic ведёт себя странно, обычно проблема не в библиотеке, а в схеме. Частые ошибки:
— поле объявили как str, а в payload прилетает int и где-то дальше это молча приводится;
— вложенные модели не описали явно, поэтому структура расползается по dict;
— optional-поля смешали с дефолтами и потом ловят неожиданные None.

Для API это особенно больно: один кривой вход превращается в баг, который сложно поймать в коде. Pydantic хорош тем, что делает контракт явным: входной payload либо проходит, либо падает сразу. Это экономит время и в Django-проектах, и в FastAPI-сервисах, и в скриптах, где данные приходят из CSV, очереди или внешнего API.

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

Если нужно преобразование, делайте его явно: до модели или через валидаторы. Иначе схема начнёт «прощать» лишнее, а потом это вылезет в проде в самом неудобном месте.

Лучший Pydantic-код — это не самый умный, а самый предсказуемый.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
В Codex внедрят GPT-5.6 Ultra

OpenAI добавит в Codex эксклюзивную версию GPT-5.6 Sol Ultra — не ту, что выйдет в паблик, а отдельную, усиленную модель.

Два ключевых режима: расширенные рассуждения (модель думает дольше) и мульти-агентная работа с параллельными субагентами. Релиз ожидается 7–9 июля 2026.

Но есть один нюанс, который OpenAI пока не раскрывает 👀 Подробности — в …

➡️ Читайте на сайте: https://aff.top/blog/v-codex-vnedriat-gpt-5-6-ultra

🧠 Ещё больше инсайтов → в канале AFF.top