IT-новости про Python, которые стоит знать

Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE

     04.09.2025       Выпуск 612 (01.09.2025 - 07.09.2025)       Статьи

Мониторинг Celery. Pull-модель

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

     01.09.2025       Выпуск 612 (01.09.2025 - 07.09.2025)       Статьи

Эволюция ForeignKey в Django: от наивной модели до продакшена

Как легко «сломать» внешние ключи в Django и что с этим делать. Если кратко, то unique_together больше не нужен, индексы на ForeignKey работают не так, как вы думаете, миграции могут блокировать продакшен, а правильный порядок операций и частичные индексы экономят гигабайты и спасают нервы.

     03.08.2025       Выпуск 607 (28.07.2025 - 03.08.2025)       Статьи

Система заказов: решаем проблему конкуренции без очередей

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

     03.08.2025       Выпуск 607 (28.07.2025 - 03.08.2025)       Статьи

Как устроен пакет Django-Leaflet-Admin-List

Попросили рассказать про этот пакет, чем я и займусь.Пакет Django-Leaflet-Admin-List позволяет добавить карту со всеми географическими объектами на странице в отображение списка в админке Django.

     29.07.2025       Выпуск 607 (28.07.2025 - 03.08.2025)       Статьи
     23.07.2025       Выпуск 606 (21.07.2025 - 27.07.2025)       Статьи

Меньше нагрузки — больше запросов: искусство кеширования API

В этой статье расскажу про кеширование API (на примере Django Ninja): чем оно полезно бизнесу и когда его стоит внедрять.Когда ваш продукт начинает расти, а пользователей становится всё больше, любой повторяющийся запрос к серверу — это лишняя нагрузка. Даже если человек просто обновил страницу или несколько пользователей задали один и тот же вопрос приложению, сервер отвечает заново — и тратит на это ресурсы

     30.06.2025       Выпуск 603 (30.06.2025 - 06.07.2025)       Статьи

Как в Django реализовать заполнение профиля пользователя через Google

Хотелось бы подчеркнуть, что в обеих статьях рассматривается только один из алгоритмов. Он, на мой взгляд, наиболее понятен для начинающих разработчиков, хотя существуют и другие способы. О них можно узнать из документации Django.

     28.06.2025       Выпуск 602 (23.06.2025 - 29.06.2025)       Статьи

Мой набор для Django

Обнаружил у себя довольно внушительный набор инструментов, разработанных для Django в разное время и для разных целей. Все инструменты под лицензией LGPL, и почти все так или иначе используются в активных проектах. Возможно, какие-то из них окажутся полезны вам, поэтому хочу рассказать о них в этой - кратко, - и возможно, последующих подробных статьях по каким-то из инструментов отдельно.

     24.06.2025       Выпуск 602 (23.06.2025 - 29.06.2025)       Статьи

Круговой импорт в Python: как он ломает проекты и как его победить

Сегодня говорим о том, что в какой‑то момент словит почти каждый разработчик, особенно если вы не просто пишете скрипты, а строите проекты — будь то Django, Flask или кастомная архитектура с бизнес‑логикой в отдельных слоях. Речь про круговые импорты: они не объявляют о себе заранее, не фейлят весь проект громко и сразу, но подкрадываются исподтишка.

     12.06.2025       Выпуск 600 (09.06.2025 - 15.06.2025)       Статьи

Оптимизация запросов в Django. Подробное руководство

Хочу рассказать больше чем обычно про оптимизацию запросов к базе данных в Django. Расскажу о том, как не только запрашивать, но и создавать или обновлять записи в базе. В статье будет много примеров, генерируемый SQL, типы данных, индексы и выводы планировщика запросов. Данная статья подходит для как для начинающих, так и достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.

     10.06.2025       Выпуск 600 (09.06.2025 - 15.06.2025)       Статьи

Кастомизация Django Admin с django-unfold

Её довольно старое для современных рамок стилизация - не приговор. И делается это буквально в пару кликов, без лишнего .css кода. На который как раз таки гайдов полно. Зачем засорять папку со статическими файлами лишним кодом, если можно сделать это в пару кликов.

     04.06.2025       Выпуск 599 (02.06.2025 - 08.06.2025)       Статьи

Особенности поведения функции resolve при установке языка в Django 5

Сегодня я наткнулся на интересный баг, который заключается в поведении функции resolve для разрешения путей на Django сайте при установке языка.

     27.05.2025       Выпуск 598 (26.05.2025 - 01.06.2025)       Статьи

Некоторые неочевидные особенности Django ORM (filter и exclude)

TLDR: В статье рассказывается о некоторых особенностях Django ORM, а именно, как при неправильном использовании некоторых встроенных методов (filter(), exclude()) можно незаметно, но очень больно, выстрелить себе в ногу при работе со связями many-to-many и one-to-many (связь, обратная к FK). Статья может быть полезной не слишком искушенному в тонкостях Django ORM разработчику. Интересно...

     19.04.2025       Выпуск 592 (14.04.2025 - 20.04.2025)       Статьи

F(), Func() и никаких циклов: как Django думает в SQL

Сегодня рассмотрим, как использовать F()-экспрессии и Func()-обёртки в Django для того, чтобы выполнять арифметику, условия и преобразования не в Python, а на стороне базы данных. Один SQL-запрос может заменить десятки строк кода не теряя в качестве кода.

     17.04.2025       Выпуск 592 (14.04.2025 - 20.04.2025)       Статьи

Пробуем Codex CLI от OpenAI для доработки ХрюХрюКара

Пару дней назад я опубликовал статью про ХрюХрюКар - телегам-бот для борьбы со стоянкой автомобилей на зелёных зонах. Проект с открытым исходным кодом. За два дня ко мне обратилось несколько сторонников с просьбой добавить их города. Но вот незадача: у меня была возможность через админ-панель Django править данные в базе, но об этом кеш сервера не узнает (основной бекэнд на Go). В результате приходилось добавлять данные и перезагружать контейнеры с go-бекэндом вручную.

     18.03.2025       Выпуск 588 (17.03.2025 - 23.03.2025)       Статьи

Делаем жизнь легче: быстрый поиск в django и postgresql с помощью search_vector

Сегодня хочу рассказать о полнотекстовом поиске — как это все работает в django, а как в postgres, и откуда вообще взялось. Современные компании ежедневно сталкиваются с разной текстовой информацией. Эффективный поиск не только ускоряет доступ к нужным данным, но и повышает продуктивность, снижает затраты и открывает новые возможности для анализа и принятия решений. 

     13.02.2025       Выпуск 583 (10.02.2025 - 16.02.2025)       Статьи

Давайте писать удобное локальное окружение…

СМОТРИТЕ КОММЕНТАРИИ!

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

     13.01.2025       Выпуск 579 (13.01.2025 - 19.01.2025)       Статьи

Signals в Django

В этой статье я расскажу, как использовать Django Signals, чтобы приложение работало как часы. Signals — это встроенный механизм в Django, который позволяет разным частям приложения «общаться» друг с другом через события.

     10.01.2025       Выпуск 578 (06.01.2025 - 12.01.2025)       Статьи

Битва двух якодзун: Grafana K6 vs Django DRF + Nginx

Сегодня мы вместе сделаем минимальное приложение на django + DRF и проведем нагрузочное тестирование с помощью Grafana K6. Также попробуем применить кэширование в Nginx. Будем тестировать как GET-запросы, которые можно и нужно кэшировать, так и POST-запросы, которые кэшировать нельзя.

     10.01.2025       Выпуск 578 (06.01.2025 - 12.01.2025)       Статьи

Сборка Django-приложения при помощи Nuitka в onefile

К нам в команду пришла интересная задача, нужно было собрать всю серверную часть в один исполняемый файл (.elf) и в дальнейшем на его основе сделать установочный файл (.deb), чтобы создать и запустить сервис.