Собрали в одном месте самые важные ссылки
и сделали Тренажер IT-инцидентов для DevOps/SRE
В этой статье рассмотрим возможность получать метрики Celery непосредственно от самих воркеров, хитрости, на которые придётся пойти, чтобы решить эту задачу, и, самое главное, какие преимущества от этого можно получить по сравнению с классическим подходом к мониторингу Celery. Также продемонстрирую небольшой Django-проект и пример его конфигурации. Особое внимание будет уделено режиму мультипроцессинга и тому, как та или иная конфигурация запуска Celery будет влиять на сложность решения.
Как легко «сломать» внешние ключи в Django и что с этим делать. Если кратко, то unique_together больше не нужен, индексы на ForeignKey работают не так, как вы думаете, миграции могут блокировать продакшен, а правильный порядок операций и частичные индексы экономят гигабайты и спасают нервы.
Система заказов: решаем проблему конкуренции без очередей При разработке локального маркетплейса Django, и одна из задач, с которой пришлось поработать — это система бронирования товаров при создании заказа. Согласно требованиям, система должна уметь бронировать товары за покупателем, давать ему немного времени на оплату, а потом — если он не успел — освобождать эти товары для других.
Попросили рассказать про этот пакет, чем я и займусь.Пакет Django-Leaflet-Admin-List позволяет добавить карту со всеми географическими объектами на странице в отображение списка в админке Django.
В этой статье расскажу про кеширование API (на примере Django Ninja): чем оно полезно бизнесу и когда его стоит внедрять.Когда ваш продукт начинает расти, а пользователей становится всё больше, любой повторяющийся запрос к серверу — это лишняя нагрузка. Даже если человек просто обновил страницу или несколько пользователей задали один и тот же вопрос приложению, сервер отвечает заново — и тратит на это ресурсы
Хотелось бы подчеркнуть, что в обеих статьях рассматривается только один из алгоритмов. Он, на мой взгляд, наиболее понятен для начинающих разработчиков, хотя существуют и другие способы. О них можно узнать из документации Django.
Обнаружил у себя довольно внушительный набор инструментов, разработанных для Django в разное время и для разных целей. Все инструменты под лицензией LGPL, и почти все так или иначе используются в активных проектах. Возможно, какие-то из них окажутся полезны вам, поэтому хочу рассказать о них в этой - кратко, - и возможно, последующих подробных статьях по каким-то из инструментов отдельно.
Сегодня говорим о том, что в какой‑то момент словит почти каждый разработчик, особенно если вы не просто пишете скрипты, а строите проекты — будь то Django, Flask или кастомная архитектура с бизнес‑логикой в отдельных слоях. Речь про круговые импорты: они не объявляют о себе заранее, не фейлят весь проект громко и сразу, но подкрадываются исподтишка.
Хочу рассказать больше чем обычно про оптимизацию запросов к базе данных в Django. Расскажу о том, как не только запрашивать, но и создавать или обновлять записи в базе. В статье будет много примеров, генерируемый SQL, типы данных, индексы и выводы планировщика запросов. Данная статья подходит для как для начинающих, так и достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.
Её довольно старое для современных рамок стилизация - не приговор. И делается это буквально в пару кликов, без лишнего .css кода. На который как раз таки гайдов полно. Зачем засорять папку со статическими файлами лишним кодом, если можно сделать это в пару кликов.
Сегодня я наткнулся на интересный баг, который заключается в поведении функции resolve для разрешения путей на Django сайте при установке языка.
Квиз на проверку знаний о встроенных тегах в Django
TLDR: В статье рассказывается о некоторых особенностях Django ORM, а именно, как при неправильном использовании некоторых встроенных методов (filter(), exclude()) можно незаметно, но очень больно, выстрелить себе в ногу при работе со связями many-to-many и one-to-many (связь, обратная к FK). Статья может быть полезной не слишком искушенному в тонкостях Django ORM разработчику. Интересно...
Сегодня рассмотрим, как использовать F()-экспрессии и Func()-обёртки в Django для того, чтобы выполнять арифметику, условия и преобразования не в Python, а на стороне базы данных. Один SQL-запрос может заменить десятки строк кода не теряя в качестве кода.
Пару дней назад я опубликовал статью про ХрюХрюКар - телегам-бот для борьбы со стоянкой автомобилей на зелёных зонах. Проект с открытым исходным кодом. За два дня ко мне обратилось несколько сторонников с просьбой добавить их города. Но вот незадача: у меня была возможность через админ-панель Django править данные в базе, но об этом кеш сервера не узнает (основной бекэнд на Go). В результате приходилось добавлять данные и перезагружать контейнеры с go-бекэндом вручную.
Сегодня хочу рассказать о полнотекстовом поиске — как это все работает в django, а как в postgres, и откуда вообще взялось. Современные компании ежедневно сталкиваются с разной текстовой информацией. Эффективный поиск не только ускоряет доступ к нужным данным, но и повышает продуктивность, снижает затраты и открывает новые возможности для анализа и принятия решений.
СМОТРИТЕ КОММЕНТАРИИ!
В данной статье я хочу представить выстраданную годами структуру проекта и организацию его окружения, которые помогают избежать большей части проблем, связанных с локальным разворачиванием проекта.Пример будет представлен для Django проекта и PDM в качестве менеджера зависимостей, но концептуально должен подходить для любого проекта на любом языке и с любым набором сервисов.
В этой статье я расскажу, как использовать Django Signals, чтобы приложение работало как часы. Signals — это встроенный механизм в Django, который позволяет разным частям приложения «общаться» друг с другом через события.
Сегодня мы вместе сделаем минимальное приложение на django + DRF и проведем нагрузочное тестирование с помощью Grafana K6. Также попробуем применить кэширование в Nginx. Будем тестировать как GET-запросы, которые можно и нужно кэшировать, так и POST-запросы, которые кэшировать нельзя.