Python Web & Scripts — Django, FastAPI, скрипты
192 subscribers
65 photos
11 videos
140 links
Python для веба и автоматизации: Django, FastAPI, Flask, Starlette. Скрипты для парсинга, ETL, обработки данных, integrations. Async, pydantic, deployment patterns.
Канал сети public.tg.
Download Telegram
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
OpenAI сделала ChatGPT-5.6 Luna бесплатной

OpenAI делает ставку на доступность: ChatGPT-5.6 Luna стала бесплатной на сайте, а в Sol добавили ползунок глубины рассуждений для ускорения ответов. Для сложных запросов готовят кнопку Think. Пока это веб-эксклюзив, но вывод очевиден: OpenAI усиливает продукт и давит на конкурентов бесплатным доступом.

➡️ Читайте на сайте: https://aff.top/blog/openai-sdelala-chatgpt-5-6-luna-besplatnoi

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

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

➡️ Читайте на сайте: https://aff.top/blog/metamask-predstavil-svoiu-kriptokoshelek-dlia-ii

🧠 Ещё больше инсайтов → в канале AFF.top
Flask ломается не в роуте, а в том, как вы собираете приложение из мелочей

У Flask простая поверхность, и именно поэтому в нём легко нарастить хаос: один файл со всем, глобальные объекты, ручная регистрация всего подряд. Через пару месяцев проект начинает тормозить не по CPU, а по организации кода.

Если делать проект живучим, держите базу такой:
— app factory вместо единого app.py;
— конфиг отдельно от логики, через объект или модуль;
— blueprints для границ доменов, а не ради красоты;
— расширения и БД инициализируйте в одном месте, а не в импортах;
— фоновые задачи и интеграции выносите из request cycle.

Самая частая ошибка — смешать представление, бизнес-логику и доступ к данным в одном обработчике. Тогда тесты становятся болезненными, а любое изменение тянет цепочку побочных эффектов. В Flask это особенно заметно, потому что фреймворк не навязывает архитектуру и легко позволяет “сделать быстро” в ущерб поддерживаемости.

Если проект уже вырос, не переписывайте всё сразу: сначала вынесите конфиг, потом фабрику приложения, затем разрежьте маршруты по модулям. В таком порядке Flask перестаёт быть набором файлов и становится приложением, которое можно сопровождать без боли.
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Media is too big
VIEW IN TELEGRAM
⚡️Я первый арбитражный блогер с миллионом подписчиков!

Коллеги, я перезжаю в этот канал - 1 000 000 подписчиков у Иванова! Все строго про арбитраж трафика!

Переезжает сюда - https://t.me/+vKOoe6K4yL0wMzEy

P.S. Популярно тот в ком люди видят своего - мне очень повезло что я такая посредственность!



____
🤔 Консоли Google Play и Apple Developer надо? Phoenix — 100% свой фарм с 2021-го. Забрать акки@phoenix_seller_bot 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Дима Лето - TikTok Ads mVas (Dzmitry Leto (Сб-Вс off day ))
Я короче хз зачем мне это , но напишу!
Короче смотрим за "ноунейом" ( ЕЮ ) и тот вообще крышей поехал) взял себе крутанул канал на 1млн подписчиков и хочет сделать его своим основным?
Армия ботов в перед!

Вот его новый канал если что.. https://t.me/+vKOoe6K4yL0wMzEy
Жирный кукухой поплыл, купил канал почти на лллллям двести подписчиков. Амбассадоры не работают?

Или как теперь PR оценивать? Одна полуголая курдюком трясёт, второй — то трезвый, то бухой, с биполяркой.

Люди, очнитесь.
_________________

Канал | Блог | YouTube | Мультитул 2.0 | ПОЛИГON by Петя 2.0

👎 @pacan с пьяну подпись под каждым постом купил, а текст дал такй:

ХОЧЕТСЯ И РЫБКУ СЪЕСТЬ, И..🎣 Залить Fishing Time на
TopX
 FTD идёт по 3$, плюс ребята РАЗДАЮТ 1,000,000$ среди баеров! Инфа
ТУТ!
Please open Telegram to view this post
VIEW IN TELEGRAM
Flask ломается не на роутинге, а на границе между приложением и скриптом

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

Держите три правила:
— создавайте приложение через фабрику, а не в модуле с роутами;
— выносите настройки в отдельный объект, без прямого чтения env в бизнес-логике;
— не тяните db/session/client в глобальную область, если их можно передать явно.

Для маленького сервиса Flask удобен именно тем, что в нём легко держать границу между HTTP-слоем и кодом домена. Маршрут должен принимать данные, вызывать функцию и отдавать ответ. Всё, что похоже на вычисления, парсинг, интеграции и очереди, лучше вынести в отдельные модули — тогда код можно переиспользовать и в CLI, и в воркере.

Если нужен долгоживущий Flask-проект, проверяйте не «как быстро поднялся сервер», а насколько легко заменить хранилище, подменить клиент внешнего API и прогнать тесты без веб-стека. Если это делается без магии, проект будет жить спокойно.
Forwarded from Иванов и арбитраж трафика
МАКСИМАЛЬНО ОБЕСКУРАЖЕН, УДРУЧЁН И, НЕ ПОБОЮСЬ ЭТОГО СЛОВА, ОТОРОПЕЛ ОТ ПРОИСХОДЯЩЕГО В «ПИАР»-МИРЕ НАШЕЙ СФЕРЫ.

Я пребываю в некотором нравственном недоумении от той удивительной метаморфозы, которую в последнее время претерпевает понятие «пиар». То, что раньше считалось дурновкусием, беспринципностью и откровенным свинством, теперь, видимо, принято именовать нестандартной маркетинговой стратегией.

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

А во-вторых, вы вообще понимаете, куда мы идём?

Сначала люди хотят выйти на РУ и СНГ рынок. Понимают, что нормальный путь - это долго, дорого, кропотливо и без каких-либо гарантий результата. И вместо этого выбирают дорожку дешёвого хайпа, совершенно не сообразуясь с тем, что именно они делают с конкретным человеком.

Потом, видимо, решают, что достигнутой степени публичного резонанса недостаточно, и предпринимают следующий, ещё более одиозный шаг - просто кидают его. Чтобы обсуждали ещё больше.

И я почти уверен, что они прекрасно понимали: это увижу и я. И что как человек, который способен сопереживать подобным людям, в том числе потому, что сам являюсь инвалидом детства второй группы, я мимо этого не пройду.

В итоге для них это один кидок и море хайпа. Но какой ценой? Стоило ли это того?
Не думаю.

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

Репутация вообще штука крайне занятная. Создаётся годами, а профукивается иногда одним весьма опрометчивым маркетинговым решением.

И дабы на этом, пусть кому-то он покажется не очень далёким, возможно, не самым интеллектуально одарённым, но совершенно точно бравом и стремящемся к успеху молодом человеке впредь не было набито брендов, способных породить столь прискорбные ассоциации, я беру на себя полномочия и ответственность отныне быть тем самым AFFPAPA.

Если конкретнее - быть AffPapa.org.

Этот смелый и совершенно точно стремящийся к успеху молодой человек может впредь без малейшего смущения носить на себе бренд AffPapa.

Я приложу все доступные мне усилия, чтобы единственной устойчивой ассоциацией с AffPapa со временем стал именно AffPapa.org.

Полагаю, это будет наиболее изящным разрешением сложившейся нравственно-маркетинговой коллизии.

Обсудить все это можно в моем чате - будьте аккуратны, там не всем рады, точней никому не рады, от чего он и великолепен


С уважением, Иванов Е.Ю!
Pydantic ломают не типы, а границы входных данных

Если модель валится в рантайме, проблема обычно не в самой схеме, а в том, что в неё тащат всё подряд: raw JSON, формы, query params и внутренние dict без разделения слоёв. Для веба полезно держать три уровня: входной payload, нормализованную доменную модель и объект для ответа.

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

Отдельная ловушка — nested структуры. Если список объектов может быть частично грязным, ошибка в одном элементе не должна скрывать остальные. Лучше явно собирать ошибки и отдавать их в одном ответе, чем чинить данные молча.

Ещё одна полезная привычка: не использовать одну и ту же модель для create, update и response. Это почти всегда приводит к лишним optional-полям, странным default и утечке внутренних атрибутов в API.

Если держать Pydantic только на границе системы, код становится проще: меньше магии в сервисах, меньше сюрпризов в тестах, быстрее понять, где именно сломался контракт.
Forwarded from AffPapa! Клуб спящих бизнесменов! Потрачено!
Дорогие партнёры!

С августа и по 31 сентября в BETERA PARTNERS запускаем конкурс для всех партнёров.
Всё просто: чем больше квалифицированных FTD, тем выше ваше место в рейтинге.
🏆 Что можно забрать?
• Apple MacBook Air 15
• Apple iPad 11
• Apple Watch Series 11
• и другие призы для наших любимых партнёров ❤️
Как участвовать?
⚡️ Быть или стать партнёром BETERA PARTNERS
⚡️Подтвердить желание участвовать
⚡️Приводить квалифицированные FTD в период с 05.08 по 31.09.2026
Пока другие думают — можно уже лить, зарабатывать и забирать свой подарок 😉
Почему партнёры выбирают BETERA PARTNERS:
⭐️ CPA / RevShare / Hybrid / Spend
⭐️ CPA от $150 — как на Tier-1 😉
⭐️ Собственный продукт с локальной лицензией
⭐️ Без KPI
⭐️ Прозрачные условия и быстрые выплаты
Следите за новостями в нашем Telegram-канале, а если нужна помощь с запуском или есть вопросы, залетайте в наш support и пишите нашим менеджерам, всё подскажем!

Betera Partners // Support 🔥
@TLBetera
@KattiBetera
@DaniilTrafficBetera
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Я ненавижу арбитраж
Что за помойка?

Спросите вы, и будете правы.

Новое пространство успешных бизнесменов открылось пару дней назад. Канал сразу захватил арбитражный интернет. Миллион (!) активных и заряженных предпринимателей атаковали его подписками.

Создатель — самый успешный из них. Человек-розыгрыш, человек-споирт, человек-холст, человек-деньги — Евгений Иванов.

Ни одного бота не замечено. Лям. Все из сферы. Сам Дуров не обладает такой базой платежеспособной аудитории.

Немного о том, что обсуждается на канале:

— ахуенность админа (пост написан самим админом)
— ничтожность Affpapa
— техники минета в виде аффирмации

Учитывая предпочтения ЕЮ, можно спрогнозировать рубрики: сиськи (самого админа), кейсы (как правило, негативные), вайбкодинг и, конечно, новости с передовой арбитража.

🤡
🤲 подписался
👍 — и скоко тебе заплатили, продажная ты придорожная путана?


Я ненавижу арбитраж |Чат😠
Please open Telegram to view this post
VIEW IN TELEGRAM
asyncio ломается не в await, а в границах между I/O, CPU и cancellation

Если в проекте «всё асинхронно», это ещё не значит, что оно масштабируется. В реальности чаще всего путают три вещи: параллельность, конкурентность и неблокирующий I/O. asyncio хорошо работает там, где задачи ждут сеть, диск или таймеры. Как только в корутину попадает тяжёлая CPU-работа, event loop начинает задыхаться.

Есть 4 типовые ошибки:
— забыли вынести CPU-bound кусок в thread/process pool;
— сделали много await подряд там, где нужен gather();
— не закрыли клиент/сессию/соединение и получили утечки;
— игнорируют cancellation, а потом ловят «зависшие» фоновые задачи.

Отдельно проверьте точки входа. Если внутри корутины вызывается обычный блокирующий код — sleep, requests, синхронный ORM, файловые операции без ограничений — весь выигрыш от asyncio исчезает. Для внешних API, очередей и парсинга это особенно заметно: один блокирующий вызов может остановить десятки задач.

Хорошее правило: корутина должна либо ждать I/O, либо быстро делегировать тяжёлую работу наружу. Если это не так — перепишите участок, а не «добавляйте больше async».
Flask ломается не на маршрутах, а на том, как вы смешиваете слои

У Flask есть полезная ловушка: проект легко стартует как один файл, а потом тихо превращается в комок view-функций, SQL и логики авторизации. Если через месяц в код страшно заходить, проблема обычно не в фреймворке, а в отсутствии границ.

Рабочая схема для живого проекта:
— routes держат только HTTP-слой: принять запрос, провалидировать, вернуть ответ;
— service содержит бизнес-логику и не знает про request;
— repository общается с БД или внешним API;
— extensions и config инициализируются отдельно, а не прячутся внутри view.

Еще одна типовая ошибка — хранить состояние в глобальных переменных и надеяться, что «в проде не заметят». Flask сам по себе не спасает от гонок, если вы пишете в модульные переменные, кэшируете «на глаз» или создаете клиент БД в каждом обработчике.

Если нужен проект, который не развалится от второго разработчика, начните с app factory, явной конфигурации и одного правила: view не должен делать больше, чем оркестровать вызовы. Тогда Flask остается быстрым в разработке и не превращается в склад технического долга.
Scrapy ломается не на парсинге, а на мелочах вокруг него: 6 проверок

Scrapy часто считают “просто фреймворком для пауков”, но в проде он падает на одинаковых вещах. За неделю в репах обычно всплывают одни и те же ошибки: не тот selector, дубли, кривой пайплайн, таймауты и слишком жирные ответы от сайта.

— Сначала проверь, что ты выбираешь именно стабильный узел, а не случайный div внутри карточки.
— Дальше смотри на дедупликацию: canonical, query-параметры, пагинация и одинаковые ссылки с разным мусором в URL.
— Если данные “исчезают”, ищи проблему в item pipeline, а не в spider: там часто тихо режутся пустые поля и неожиданные типы.
— Для тяжёлых страниц включай ограничение concurrency и нормальный retry/backoff, иначе ты сам создаёшь себе бан.

Есть наблюдение которое стоит проверить: если Spider работает только на одной странице, почти всегда дело в предположении, что HTML одинаковый. В Scrapy это лечится не магией, а явной проверкой структуры ответа и отдельной логикой на каждый шаблон страницы.

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

Если Scrapy “вроде работает”, но результат плавает, начни с трёх вещей: структура ответа, дедуп, pipeline. Это экономит больше времени, чем любой красивый рефакторинг.
Forwarded from Иванов и арбитраж трафика
This media is not supported in your browser
VIEW IN TELEGRAM
1. Выкатить ни какую он-лайн конфу я естесвенно не выкатил, потерпите

2. После прошлого видео (тык) мой канал теперь имеет юзер @PO_YICA_BRAL

3. Держите вечернее видео, я нажрусь и спать

Чото надо ещё сказать? Ну, можно лишь добавить Настя #MelBet верни деньги, не играй с огнём, со мной лучше не ссориться. Спасибо.

P.S. Бабка-то, похоже, не своей..... см. видео!

С уважением, Иванов Е.Ю!