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

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

     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 сайте при установке языка.

     02.06.2025       Выпуск 599 (02.06.2025 - 08.06.2025)       Учебные материалы

Викторина: Использование встроенных тегов в Django

Квиз на проверку знаний о встроенных тегах в 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), чтобы создать и запустить сервис.

     26.12.2024       Выпуск 576 (23.12.2024 - 29.12.2024)       Статьи

Базовая настройка SAST и DAST для django в gitlab cicd: как быстро внедрить решения по безопасности

Сегодня расскажу вам о базовой настройке SAST и DAST для django в gitlab cicd. В разработке использование SAST (Static Application Security Testing) и DAST (Dynamic Application Security Testing) в последние годы стало уже стандартом.

     24.12.2024       Выпуск 576 (23.12.2024 - 29.12.2024)       Интересные проекты, инструменты, библиотеки

django-liveconfigs - управление настройками в django

Как добавить кучу настроек для администратора в свой проект на django без дополнительных сервисов feature-toggle и потом в них не потеряться.

     12.12.2024       Выпуск 574 (09.12.2024 - 15.12.2024)       Статьи

Большой гайд по миграциям в Django: полезные советы и обход типичных подводных камней

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

     06.12.2024       Выпуск 573 (02.12.2024 - 08.12.2024)       Статьи

TIL: Django relations are not cached in model instance // Enrique Soria

Django will reevaluate relations multiple times if you let it. Here are some examples and workarounds.

     01.12.2024       Выпуск 572 (25.11.2024 - 01.12.2024)       Статьи

AJAX-запросы в Django на примере простейшего приложения сбора и показа сообщений

В этой статье я собираюсь подробно показать взаимодействие фронтенда с AJAX и бекенда с Django, ограничившись минимумом кода. Статья больше рассчитана на новичков и станет отличной базой для дальнейшего развития в теме.