Эволюция ForeignKey в Django: от наивной модели до продакшена
Команда Python for Devs подготовила перевод статьи о том, как легко «сломать» внешние ключи в Django и что с этим делать. Если кратко, то
Читать: https://habr.com/ru/articles/942252/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод статьи о том, как легко «сломать» внешние ключи в Django и что с этим делать. Если кратко, то
unique_together больше не нужен, индексы на ForeignKey работают не так, как вы думаете, миграции могут блокировать продакшен, а правильный порядок операций и частичные индексы экономят гигабайты и спасают нервы.Читать: https://habr.com/ru/articles/942252/
#ru
@django_prog | Другие наши каналы
🔥2
Быстрый Django: всё, что нужно знать о производительности
Команда Python for Devs подготовила перевод статьи о том, как сделать Django-сайты быстрее. Автор разбирает два пути — «делать больше» (масштабирование инфраструктуры) и «делать меньше» (уменьшение задержек через оптимизацию кода и запросов). В статье — практические примеры, баг N+1, кэширование и инструменты вроде Django Debug Toolbar, Locust и APM.
Читать: https://habr.com/ru/articles/942296/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод статьи о том, как сделать Django-сайты быстрее. Автор разбирает два пути — «делать больше» (масштабирование инфраструктуры) и «делать меньше» (уменьшение задержек через оптимизацию кода и запросов). В статье — практические примеры, баг N+1, кэширование и инструменты вроде Django Debug Toolbar, Locust и APM.
Читать: https://habr.com/ru/articles/942296/
#ru
@django_prog | Другие наши каналы
Самые популярные Python фреймворки и библиотеки 2025 года
Команда Python for Devs подготовила перевод статьи о самых популярных Python-фреймворках и библиотеках 2025 года. FastAPI уверенно догоняет Django и Flask, Requests и Asyncio остаются незаменимыми, а Streamlit и Starlette усиливают свои позиции в нишевых сценариях.
Читать: https://habr.com/ru/articles/943616/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод статьи о самых популярных Python-фреймворках и библиотеках 2025 года. FastAPI уверенно догоняет Django и Flask, Requests и Asyncio остаются незаменимыми, а Streamlit и Starlette усиливают свои позиции в нишевых сценариях.
Читать: https://habr.com/ru/articles/943616/
#ru
@django_prog | Другие наши каналы
Навайбкодил и рад: за 20 часов создал сервис, который автоматизировал маркетинг
Про то, как нейросети помогли быстро создать систему управления influence-маркетингом, которая позволила сэкономить 3-5 минут на каждом размещении, убрать задержки в работе и человеческий фактор, а также красиво визуализировать данные
Читать: https://habr.com/ru/articles/945088/
#ru
@django_prog | Другие наши каналы
Про то, как нейросети помогли быстро создать систему управления influence-маркетингом, которая позволила сэкономить 3-5 минут на каждом размещении, убрать задержки в работе и человеческий фактор, а также красиво визуализировать данные
Читать: https://habr.com/ru/articles/945088/
#ru
@django_prog | Другие наши каналы
Как мы освободили 20 ГБ в PostgreSQL без удаления данных
Команда Python for Devs подготовила перевод статьи о том, как можно освободить десятки гигабайт места в PostgreSQL без удаления данных и индексов. TL;DR: удаляем неиспользуемые индексы, чистим bloat, пересобираем таблицы и используем частичные индексы, чтобы хранить только то, что реально нужно.
Читать: https://habr.com/ru/articles/944704/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод статьи о том, как можно освободить десятки гигабайт места в PostgreSQL без удаления данных и индексов. TL;DR: удаляем неиспользуемые индексы, чистим bloat, пересобираем таблицы и используем частичные индексы, чтобы хранить только то, что реально нужно.
Читать: https://habr.com/ru/articles/944704/
#ru
@django_prog | Другие наши каналы
Какой Python-фреймворк выбрать: Django, Flask или FastAPI?
Команда Python for Devs подготовила перевод статьи о том, какой фреймворк выбрать для веб-разработки на Python: Django, Flask или FastAPI. Django берёт надёжностью и готовой функциональностью, Flask — гибкостью и минимализмом, FastAPI — скоростью и современными возможностями. А какой из них ближе вам?
Читать: https://habr.com/ru/articles/944708/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод статьи о том, какой фреймворк выбрать для веб-разработки на Python: Django, Flask или FastAPI. Django берёт надёжностью и готовой функциональностью, Flask — гибкостью и минимализмом, FastAPI — скоростью и современными возможностями. А какой из них ближе вам?
Читать: https://habr.com/ru/articles/944708/
#ru
@django_prog | Другие наши каналы
День программиста: от CGI до Zope
📅 Сегодня — День программиста. И это отличный повод вспомнить, что даже то, что кажется нам «естественным» и само собой разумеющимся, когда-то было революцией.
Мы привыкли к тому, что любой фреймворк — это набор правил и инструментов, который помогает нам работать быстрее, чище, правильнее. Но назвать «первый в мире фреймворк» — так же сложно, как назвать первого музыканта, сыгравшего рок-н-ролл. Понятие рождалось постепенно, размытое и спорное.
Читать: https://habr.com/ru/articles/946614/
#ru
@django_prog | Другие наши каналы
📅 Сегодня — День программиста. И это отличный повод вспомнить, что даже то, что кажется нам «естественным» и само собой разумеющимся, когда-то было революцией.
Мы привыкли к тому, что любой фреймворк — это набор правил и инструментов, который помогает нам работать быстрее, чище, правильнее. Но назвать «первый в мире фреймворк» — так же сложно, как назвать первого музыканта, сыгравшего рок-н-ролл. Понятие рождалось постепенно, размытое и спорное.
Читать: https://habr.com/ru/articles/946614/
#ru
@django_prog | Другие наши каналы
Django: почему один settings.py может стоить вашей компании миллионы
На Хабре любят истории про эффективность. Но есть одна тема, которую обычно обходят стороной — ритуалы джанго-разработчиков.
Эти ритуалы жрут месяцы жизни компаний, и об этом мало кто говорит.
Я расскажу историю. Она звучит как анекдот, но на самом деле это кейс.
Читать: https://habr.com/ru/articles/946756/
#ru
@django_prog | Другие наши каналы
На Хабре любят истории про эффективность. Но есть одна тема, которую обычно обходят стороной — ритуалы джанго-разработчиков.
Эти ритуалы жрут месяцы жизни компаний, и об этом мало кто говорит.
Я расскажу историю. Она звучит как анекдот, но на самом деле это кейс.
Читать: https://habr.com/ru/articles/946756/
#ru
@django_prog | Другие наши каналы
Меньше магии, больше кода: мой способ писать Django views
Команда Python for Devs подготовила перевод статьи о том, как автор выбирает способ написания представлений в Django. Он считает, что обобщённые классовые представления (CBV) скрывают слишком много магии, усложняют чтение кода и отладку. Вместо них он использует базовый View, чтобы сохранять контроль, но при этом избегать громоздких if в функциях.
Читать: https://habr.com/ru/articles/946734/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод статьи о том, как автор выбирает способ написания представлений в Django. Он считает, что обобщённые классовые представления (CBV) скрывают слишком много магии, усложняют чтение кода и отладку. Вместо них он использует базовый View, чтобы сохранять контроль, но при этом избегать громоздких if в функциях.
Читать: https://habr.com/ru/articles/946734/
#ru
@django_prog | Другие наши каналы
Настраиваем Docker для Django
Привет, Хабр! В этой статье мы запустим Docker с Django на локальной машине. Этот материал ориентирован исключительно на локальную разработку — наш Django будет работать с SQLite без использования образов PostgreSQL. Уже в следующей статье мы соберем более сложное приложение.
Все действия будем выполнять в Windows, так как большинство начинающих разработчиков используют именно эту операционную систему.
Перед началом работы убедитесь, что у вас установлен и настроен Docker Desktop для Windows. В сети много руководств по его установке, поэтому думаю, что с этим не возникнет проблем. Мы будем использовать Django 5.2.6 и Docker Desktop 28.4.0. Весь проект доступен на GitHub. Если материал оказался полезным, буду благодарен за звёзды в репозитории.
Первым делом создадим приложение, для которого будем собирать образ:
Читать: https://habr.com/ru/articles/953978/
#ru
@django_prog | Другие наши каналы
Привет, Хабр! В этой статье мы запустим Docker с Django на локальной машине. Этот материал ориентирован исключительно на локальную разработку — наш Django будет работать с SQLite без использования образов PostgreSQL. Уже в следующей статье мы соберем более сложное приложение.
Все действия будем выполнять в Windows, так как большинство начинающих разработчиков используют именно эту операционную систему.
Перед началом работы убедитесь, что у вас установлен и настроен Docker Desktop для Windows. В сети много руководств по его установке, поэтому думаю, что с этим не возникнет проблем. Мы будем использовать Django 5.2.6 и Docker Desktop 28.4.0. Весь проект доступен на GitHub. Если материал оказался полезным, буду благодарен за звёзды в репозитории.
Первым делом создадим приложение, для которого будем собирать образ:
Читать: https://habr.com/ru/articles/953978/
#ru
@django_prog | Другие наши каналы
🔥2
Django Templates: всё, что вам нужно знать
Команда Python for Devs подготовила перевод большого туторила по Django Templates. В статье подробно разбирается, как устроен язык шаблонов Django, чем он отличается от Jinja, как правильно наследовать шаблоны и организовать структуру проекта. Если вы хотите сделать свои Django-приложения более чистыми, поддерживаемыми и быстрыми — этот материал для вас.
Читать: https://habr.com/ru/articles/946762/
#ru
@django_prog | Другие наши каналы
Команда Python for Devs подготовила перевод большого туторила по Django Templates. В статье подробно разбирается, как устроен язык шаблонов Django, чем он отличается от Jinja, как правильно наследовать шаблоны и организовать структуру проекта. Если вы хотите сделать свои Django-приложения более чистыми, поддерживаемыми и быстрыми — этот материал для вас.
Читать: https://habr.com/ru/articles/946762/
#ru
@django_prog | Другие наши каналы
Django 6.0: Ключевые функции, критические изменения
В Django 6.0 есть кое-что для вас. Давайте рассмотрим самые важные новые функции и изменения, о которых вам нужно знать.
Читать: https://habr.com/ru/articles/954390/
#ru
@django_prog | Другие наши каналы
В Django 6.0 есть кое-что для вас. Давайте рассмотрим самые важные новые функции и изменения, о которых вам нужно знать.
Читать: https://habr.com/ru/articles/954390/
#ru
@django_prog | Другие наши каналы
12 фишек в административной панели Django, которые экономят мне 12 часов в неделю
12 способов кастомизации Django admin — поиск, фильтры, инлайны, действия, автодополнение, list_editable и оптимизация запросов — которые значительно повышают продуктивность.
Я обожаю функции-бумеранги: сделал работу один раз — и они продолжают приносить тебе пользу. Административная панель Django просто набита ими. Небольшие, точечные настройки, которые сбривают минуты с каждой задачи, пока ты не замечаешь, что к пятнице появилось свободное место. Вот 12 изменений, которые стабильно будут помогать вам экономить время, каждую неделю.
Базовая модель
В качестве примера представьте:
Читать: https://habr.com/ru/articles/954620/
#ru
@django_prog | Другие наши каналы
12 способов кастомизации Django admin — поиск, фильтры, инлайны, действия, автодополнение, list_editable и оптимизация запросов — которые значительно повышают продуктивность.
Я обожаю функции-бумеранги: сделал работу один раз — и они продолжают приносить тебе пользу. Административная панель Django просто набита ими. Небольшие, точечные настройки, которые сбривают минуты с каждой задачи, пока ты не замечаешь, что к пятнице появилось свободное место. Вот 12 изменений, которые стабильно будут помогать вам экономить время, каждую неделю.
Базовая модель
В качестве примера представьте:
Читать: https://habr.com/ru/articles/954620/
#ru
@django_prog | Другие наши каналы
Не обижайте Django
Чем популярнее становится FastAPI, тем сильнее критикуют Django. И не просто критикуют. Брезгуют? Пренебрегают? Всего понемножку. Всё чаще слышу, что Django - пережиток прошлого. Любой проект на Django - устаревший мусор. Любой "джанговод" - просто не знает, что тоже устарел. Объективно ли это? Нет, не объективно. Если отвёртка плохо забивает гвозди, это не значит, что отвёртки устарели — просто это не их задача.
Читать: https://habr.com/ru/articles/959114/
#ru
@django_prog | Другие наши каналы
Чем популярнее становится FastAPI, тем сильнее критикуют Django. И не просто критикуют. Брезгуют? Пренебрегают? Всего понемножку. Всё чаще слышу, что Django - пережиток прошлого. Любой проект на Django - устаревший мусор. Любой "джанговод" - просто не знает, что тоже устарел. Объективно ли это? Нет, не объективно. Если отвёртка плохо забивает гвозди, это не значит, что отвёртки устарели — просто это не их задача.
Читать: https://habr.com/ru/articles/959114/
#ru
@django_prog | Другие наши каналы
«Автопилот» для HeadHunter — как я потратил 100 часов на бота- чтобы сэкономить тысячи часов айтишникам на поиске работы
Привет- Хабр!
Поиск работы – это... боль. Нет- не так. Это – ад.
Это бесконечный скроллинг- десятки открытых вкладок.
Это "Tinder-свайпинг" вакансий- где ты 200 раз жмешь "Нет" и 10 раз "Да"- чтобы получить 0 ответов.
Это ручное написание "Здравствуйте- [Имя рекрутера]- меня заинтересовала вашу вакансия..." – 50 раз в день.
Это тошнотворное состояние- когда ты- квалифицированный инженер- тратишь 80% времени не на решение задач и подготовку к собеседованиям- а на тупую- механическую работу по "кликанью".
Я – инженер. Я должен был это автоматизировать.
Есть золотое правило- Любая повторяющаяся рутинная задача должна быть автоматизирована.
Я решил- что мой следующий поиск работы не будет таким. Я создам свою "идеальную" систему.
Читать: https://habr.com/ru/articles/961496/
#ru
@django_prog | Другие наши каналы
Привет- Хабр!
Поиск работы – это... боль. Нет- не так. Это – ад.
Это бесконечный скроллинг- десятки открытых вкладок.
Это "Tinder-свайпинг" вакансий- где ты 200 раз жмешь "Нет" и 10 раз "Да"- чтобы получить 0 ответов.
Это ручное написание "Здравствуйте- [Имя рекрутера]- меня заинтересовала вашу вакансия..." – 50 раз в день.
Это тошнотворное состояние- когда ты- квалифицированный инженер- тратишь 80% времени не на решение задач и подготовку к собеседованиям- а на тупую- механическую работу по "кликанью".
Я – инженер. Я должен был это автоматизировать.
Есть золотое правило- Любая повторяющаяся рутинная задача должна быть автоматизирована.
Я решил- что мой следующий поиск работы не будет таким. Я создам свою "идеальную" систему.
Читать: https://habr.com/ru/articles/961496/
#ru
@django_prog | Другие наши каналы
Как стримить большие ответы в Django через StreamingHttpResponse и async-генераторы
Привет, Хабр!
Сегодня рассмотрим решение одной непростой задачи, как в Django выдавать очень большие объёмы данных, например, выгрузку в CSV или потоковый JSON-формат NDJSON) так, чтобы сервер не ложился от нагрузки, а пользователи быстрее получали первые данные. Разберём, как использовать
Подробнее о стриминге
Читать: https://habr.com/ru/companies/otus/articles/960036/
#ru
@django_prog | Другие наши каналы
Привет, Хабр!
Сегодня рассмотрим решение одной непростой задачи, как в Django выдавать очень большие объёмы данных, например, выгрузку в CSV или потоковый JSON-формат NDJSON) так, чтобы сервер не ложился от нагрузки, а пользователи быстрее получали первые данные. Разберём, как использовать
StreamingHttpResponse и генераторы (в том числе асинхронные) для стриминга больших ответов и поговорим нюансах. Подробнее о стриминге
Читать: https://habr.com/ru/companies/otus/articles/960036/
#ru
@django_prog | Другие наши каналы
Почему ваш AI-ассистент пишет «вырвиглазный» код, и как это исправить грубой силой
Технически это называется «неконсистентный». А по-человечески — боль. Делюсь рабочим, хоть и неидеальным, способом её лечения.
Читать: https://habr.com/ru/articles/962490/
#ru
@django_prog | Другие наши каналы
Технически это называется «неконсистентный». А по-человечески — боль. Делюсь рабочим, хоть и неидеальным, способом её лечения.
Читать: https://habr.com/ru/articles/962490/
#ru
@django_prog | Другие наши каналы
Как собрать платный AI-микро-SaaS (Next.js + Django + ЮKassa + Web Stories) и не застрять в пет-проекте
Большинство наших «проектов мечты» умирают не потому, что идея плохая, а потому что мы останавливаемся на уровне «ну вот, фронт есть, бэк вроде тоже, как-нибудь допилю оплаты и выложу». Не допиливаем. Потому что платежи, вебхуки, витрина, SEO, публикации — это уже не «интересный код», а «организационная скука».
Проект как раз про то, чтобы скучное сделать готовым и многоразовым. Мы один раз собираем связку: AI → Django/DRF → ЮKassa → деплой → Web Stories → SEO, а дальше в неё можно подставлять вашу идею — не только Mermaid. Mermaid здесь как манекен: на нём удобно показывать, куда вешать оплату, куда прикручивать экспорт, где пускать трафик.
Если у вас в голове крутится мысль «я бы запустил свою фичу, если бы была готовая дорожка к деньгам» — это она.
Читать: https://habr.com/ru/articles/963420/
#ru
@django_prog | Другие наши каналы
Большинство наших «проектов мечты» умирают не потому, что идея плохая, а потому что мы останавливаемся на уровне «ну вот, фронт есть, бэк вроде тоже, как-нибудь допилю оплаты и выложу». Не допиливаем. Потому что платежи, вебхуки, витрина, SEO, публикации — это уже не «интересный код», а «организационная скука».
Проект как раз про то, чтобы скучное сделать готовым и многоразовым. Мы один раз собираем связку: AI → Django/DRF → ЮKassa → деплой → Web Stories → SEO, а дальше в неё можно подставлять вашу идею — не только Mermaid. Mermaid здесь как манекен: на нём удобно показывать, куда вешать оплату, куда прикручивать экспорт, где пускать трафик.
Если у вас в голове крутится мысль «я бы запустил свою фичу, если бы была готовая дорожка к деньгам» — это она.
Читать: https://habr.com/ru/articles/963420/
#ru
@django_prog | Другие наши каналы
Я устал кликать по HH — отдал это Gemini и получил 7 инвайтов за 3 дня
Привет Хабр!
Давайте честно, поиск работы - это ад. Я инженер и я ненавижу рутину. А поиск работы - это 90% тупого кликанья.
Открыть 50 вкладок - 50 раз написать "Здравствуйте- меня заинтересовало..." - 50 раз скопировать-вставить. Это выжигает.
Можно конечно написать автокликер, который будет спамить "пустышками". Но рекрутеры не дураки - такие отклики летят в мусор. А "ручной" режим- это 3-4 часа в день.
Я понял - что должен быть третий путь. Не просто автоматизация - а умная автоматизация.
Читать: https://habr.com/ru/articles/963512/
#ru
@django_prog | Другие наши каналы
Привет Хабр!
Давайте честно, поиск работы - это ад. Я инженер и я ненавижу рутину. А поиск работы - это 90% тупого кликанья.
Открыть 50 вкладок - 50 раз написать "Здравствуйте- меня заинтересовало..." - 50 раз скопировать-вставить. Это выжигает.
Можно конечно написать автокликер, который будет спамить "пустышками". Но рекрутеры не дураки - такие отклики летят в мусор. А "ручной" режим- это 3-4 часа в день.
Я понял - что должен быть третий путь. Не просто автоматизация - а умная автоматизация.
Читать: https://habr.com/ru/articles/963512/
#ru
@django_prog | Другие наши каналы
Почему я отказался от ORM в пользу чистого SQL
Во время выполнения очередного проекта мне пришлось работать с Битрикс ORM, при этом параллельно в системе был инстанс Laravel. Две разные ORM работали с единой базой данных. Не буду вдаваться в причины, по которым был выбран такой подход, и воздержусь от его оценки. Суть в том, что мне приходилось одновременно работать с двумя принципиально разными системами. Этот опыт привел меня к фундаментальному выводу: ORM — не для меня.
Почитать мнение
Читать: https://habr.com/ru/companies/betboom/articles/959322/
#ru
@django_prog | Другие наши каналы
Во время выполнения очередного проекта мне пришлось работать с Битрикс ORM, при этом параллельно в системе был инстанс Laravel. Две разные ORM работали с единой базой данных. Не буду вдаваться в причины, по которым был выбран такой подход, и воздержусь от его оценки. Суть в том, что мне приходилось одновременно работать с двумя принципиально разными системами. Этот опыт привел меня к фундаментальному выводу: ORM — не для меня.
Почитать мнение
Читать: https://habr.com/ru/companies/betboom/articles/959322/
#ru
@django_prog | Другие наши каналы