Почему в 2025 для создания простого REST API с Django всё ещё нужен сторонний пакет? Статья разбирает, как с помощью стандартных классов Django и форм можно реализовать CRUD JSON API без Django REST Framework, упрощая задачи для простых случаев. Простой REST с Django без доп. библиотек
В статье рассматривается, как с помощью встроенных generics Django можно реализовать базовый REST API менее чем за 100 строк кода. Подчеркивается, что для простых задач сторонние решения необязательны, хотя для крупных проектов лучше использовать готовые библиотеки.
Подробности: https://www.djangoproject.com/weblog/2025/may/22/why-need-3rd-party-app-rest-api-with-django/
#en
@django_prog | Другие наши каналы
В статье рассматривается, как с помощью встроенных generics Django можно реализовать базовый REST API менее чем за 100 строк кода. Подчеркивается, что для простых задач сторонние решения необязательны, хотя для крупных проектов лучше использовать готовые библиотеки.
Подробности: https://www.djangoproject.com/weblog/2025/may/22/why-need-3rd-party-app-rest-api-with-django/
#en
@django_prog | Другие наши каналы
❤3👍1
Некоторые неочевидные особенности Django ORM (filter и exclude)
TLDR: В статье рассказывается о некоторых особенностях Django ORM, а именно, как при неправильном использовании некоторых встроенных методов (filter(), exclude()) можно незаметно, но очень больно, выстрелить себе в ногу при работе со связями many-to-many и one-to-many (связь, обратная к FK). Статья может быть полезной не слишком искушенному в тонкостях Django ORM разработчику.
Интересно...
Читать: https://habr.com/ru/articles/913190/
#ru
@django_prog | Другие наши каналы
TLDR: В статье рассказывается о некоторых особенностях Django ORM, а именно, как при неправильном использовании некоторых встроенных методов (filter(), exclude()) можно незаметно, но очень больно, выстрелить себе в ногу при работе со связями many-to-many и one-to-many (связь, обратная к FK). Статья может быть полезной не слишком искушенному в тонкостях Django ORM разработчику.
Интересно...
Читать: https://habr.com/ru/articles/913190/
#ru
@django_prog | Другие наши каналы
Сломал ногу — выучил Python: как ИИ помог экс-консультанту стать программистом за 100 дней
Экс-консультант стал программистом за 100 дней с помощью ChatGPT и Python — собрал портфолио, прошел собеседование и получил работу без курсов и Leetcode
Читать: «Сломал ногу — выучил Python: как ИИ помог экс-консультанту стать программистом за 100 дней»
#ru
@django_prog | Другие наши каналы
Экс-консультант стал программистом за 100 дней с помощью ChatGPT и Python — собрал портфолио, прошел собеседование и получил работу без курсов и Leetcode
Читать: «Сломал ногу — выучил Python: как ИИ помог экс-консультанту стать программистом за 100 дней»
#ru
@django_prog | Другие наши каналы
Знакомьтесь — OTP Tech
Канал про IT в ОТП Банке. Если хочешь быть в теме и знать, как современные технологии и решения работают в международном финтехе, то подписывайся на OTP Tech.
Ребята активно развиваются, внедряют современные решения вроде ИИшек, заблаговременно думают о рисках и, например, первыми в России перешли на процессинг Solar, а еще активно формируют культуру работы с данными. И это только верхушка того, чем эксперты начали делиться у себя в ТГ. Подписывайтесь и добавляйте канал в папку «Полезное».
Подписаться
Это #партнёрский пост
Канал про IT в ОТП Банке. Если хочешь быть в теме и знать, как современные технологии и решения работают в международном финтехе, то подписывайся на OTP Tech.
Ребята активно развиваются, внедряют современные решения вроде ИИшек, заблаговременно думают о рисках и, например, первыми в России перешли на процессинг Solar, а еще активно формируют культуру работы с данными. И это только верхушка того, чем эксперты начали делиться у себя в ТГ. Подписывайтесь и добавляйте канал в папку «Полезное».
Подписаться
Это #партнёрский пост
Надежное резервное копирование SQLite в Django
Для разработчиков Django предлагаем систему резервного копирования SQLite, которая использует API онлайн-резервного копирования. Это решение позволяет обеспечить целостность данных, автоматически загружая их на GitHub. Инструменты также включают управление и проверку резервных копий.
Подробности: https://selftaughtdev.hashnode.dev/implementing-a-robust-sqlite-backup-system-in-django
Для разработчиков Django предлагаем систему резервного копирования SQLite, которая использует API онлайн-резервного копирования. Это решение позволяет обеспечить целостность данных, автоматически загружая их на GitHub. Инструменты также включают управление и проверку резервных копий.
Подробности: https://selftaughtdev.hashnode.dev/implementing-a-robust-sqlite-backup-system-in-django
👍1
Обновления безопасности Django: выпущены версии 5.2.2, 5.1.10 и 4.2.22. В них исправлена уязвимость, позволяющая внедрять управляющие символы в логи через необработанный путь запроса. Рекомендуется срочно обновиться для защиты проектов.
Подробности: https://www.djangoproject.com/weblog/2025/jun/04/security-releases/
#en
@django_prog | Другие наши каналы
Подробности: https://www.djangoproject.com/weblog/2025/jun/04/security-releases/
#en
@django_prog | Другие наши каналы
Требуется Django Fellow — оплачиваемая позиция для поддержки и развития фреймворка Django. Кандидаты должны иметь опыт в Python и веб-разработке, готовы участвовать в сообществе и вести менторство. Приём заявок открыт до 1 июля 2025 года.
Подробности: https://www.djangoproject.com/weblog/2025/jun/09/django-fellow-applicants-2025/
#en
@django_prog | Другие наши каналы
Подробности: https://www.djangoproject.com/weblog/2025/jun/09/django-fellow-applicants-2025/
#en
@django_prog | Другие наши каналы
⚡2👍1
Кастомизация Django Admin с django-unfold
Привет, Хабр. Изучая безграничные просторы интернета интернета, заметил явное отсутствие обучающих статей на тему кастомизации админ-панели в /Django/, а уж поверьте. Её довольно старое для современных рамок стилизация - не приговор. И делается это буквально в пару кликов, без лишнего .css кода. На который как раз таки гайдов полно. Зачем засорять папку со статическими файлами лишним кодом, если можно сделать это в пару кликов.
Главное преимущества /Python/, заключается в том, то что пишется на других язык программирования в десять строк, можно написать на нашем любимом языке в две строчки. Поэтому варианты с самостоятельной кастомизацией, затрагивать не будем. Хотя данная библиотека, не ограничивает вас в написание своего кода для кастомизации. Всё написанное, лишь подключенная библиотека на /Python/ для /Django/.
Читать: https://habr.com/ru/articles/917066/
#ru
@django_prog | Другие наши каналы
Привет, Хабр. Изучая безграничные просторы интернета интернета, заметил явное отсутствие обучающих статей на тему кастомизации админ-панели в /Django/, а уж поверьте. Её довольно старое для современных рамок стилизация - не приговор. И делается это буквально в пару кликов, без лишнего .css кода. На который как раз таки гайдов полно. Зачем засорять папку со статическими файлами лишним кодом, если можно сделать это в пару кликов.
Главное преимущества /Python/, заключается в том, то что пишется на других язык программирования в десять строк, можно написать на нашем любимом языке в две строчки. Поэтому варианты с самостоятельной кастомизацией, затрагивать не будем. Хотя данная библиотека, не ограничивает вас в написание своего кода для кастомизации. Всё написанное, лишь подключенная библиотека на /Python/ для /Django/.
Читать: https://habr.com/ru/articles/917066/
#ru
@django_prog | Другие наши каналы
❤4
Обновления Django для безопасности
Выпущены патчи Django 5.2.3, 5.1.11 и 4.2.23, устраняющие уязвимость CVE-2025-48432, связанную с возможной инъекцией в логи. Рекомендуется обновить версии для защиты приложений.
Подробности: https://www.djangoproject.com/weblog/2025/jun/10/bugfix-releases/
#en
@django_prog | Другие наши каналы
Выпущены патчи Django 5.2.3, 5.1.11 и 4.2.23, устраняющие уязвимость CVE-2025-48432, связанную с возможной инъекцией в логи. Рекомендуется обновить версии для защиты приложений.
Подробности: https://www.djangoproject.com/weblog/2025/jun/10/bugfix-releases/
#en
@django_prog | Другие наши каналы
DRF captcha своими руками
Пришла мне тут по работе задача сделать возможность добавления товара в корзину пользователем без авторизации. Корзина, причем должна храниться на бэке для того, чтобы можно было проводить аналитику по неоформленным заказам, а также, если пользователь авторизуется, то добавлять эту корзину к его профилю для доступности ее с любых других устройств, на которых он (пользователь авторизован).
Ясное дело, что для корзины одного пользователя в сеансе оформления заказа нужен уникальный идентификатор, по которому можно определить в какую “корзину” поместить товар.
Так как на проекте мы использует REST подход к проектированию API, я подумал, что можно генерировать
Да, все бы хорошо, но возникает потенциальная проблема паразитных запросов от недоброжелателей. Да, безусловно, есть куча всяких способов защититься от троттлинга, но все это кажется мне в этой ситуации не совсем уместным. Поэтому, я решил, что лучше уникальный идентификатор генерировать на бэкенде, а выдавать его при прохождении CAPTCHA.
Читать: https://habr.com/ru/articles/917636/
#ru
@django_prog | Другие наши каналы
Пришла мне тут по работе задача сделать возможность добавления товара в корзину пользователем без авторизации. Корзина, причем должна храниться на бэке для того, чтобы можно было проводить аналитику по неоформленным заказам, а также, если пользователь авторизуется, то добавлять эту корзину к его профилю для доступности ее с любых других устройств, на которых он (пользователь авторизован).
Ясное дело, что для корзины одного пользователя в сеансе оформления заказа нужен уникальный идентификатор, по которому можно определить в какую “корзину” поместить товар.
Так как на проекте мы использует REST подход к проектированию API, я подумал, что можно генерировать
uuid
ключ на клиенте и передавать его при каждом запросе добавления товара в корзину.Да, все бы хорошо, но возникает потенциальная проблема паразитных запросов от недоброжелателей. Да, безусловно, есть куча всяких способов защититься от троттлинга, но все это кажется мне в этой ситуации не совсем уместным. Поэтому, я решил, что лучше уникальный идентификатор генерировать на бэкенде, а выдавать его при прохождении CAPTCHA.
Читать: https://habr.com/ru/articles/917636/
#ru
@django_prog | Другие наши каналы
От кнопки до продакшена: как мы делаем Telegram Mini Apps
Привет! Мы — команда Doubletapp, и сегодня расскажем, как создать Telegram Mini App на стеке React + Python.
Telegram Mini Apps — это мощный инструмент, который позволяет создавать интерактивные веб-приложения, работающие прямо внутри мессенджера. Они идеально подходят для игр, маркетплейсов, сервисов бронирования и многого другого.
В этом туториале мы разберем процесс создания Mini App:
• настроим проект
• создадим фронтенд на React с поддержкой Telegram SDK
• реализуем бэкенд на Python (Django)
• свяжем все компоненты и развернем приложение.
Читать: https://habr.com/ru/companies/doubletapp/articles/917286/
#ru
@django_prog | Другие наши каналы
Привет! Мы — команда Doubletapp, и сегодня расскажем, как создать Telegram Mini App на стеке React + Python.
Telegram Mini Apps — это мощный инструмент, который позволяет создавать интерактивные веб-приложения, работающие прямо внутри мессенджера. Они идеально подходят для игр, маркетплейсов, сервисов бронирования и многого другого.
В этом туториале мы разберем процесс создания Mini App:
• настроим проект
• создадим фронтенд на React с поддержкой Telegram SDK
• реализуем бэкенд на Python (Django)
• свяжем все компоненты и развернем приложение.
Читать: https://habr.com/ru/companies/doubletapp/articles/917286/
#ru
@django_prog | Другие наши каналы
Оптимизация запросов в Django. Подробное руководство
Привет, хабр! В данной статье хочу рассказать больше чем обычно про оптимизацию запросов к базе данных в Django. Расскажу о том, как не только запрашивать, но и создавать или обновлять записи в базе. В статье будет много примеров, генерируемый SQL, типы данных, индексы и выводы планировщика запросов.
Данная статья подходит для как для начинающих, так и достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.
Читать: https://habr.com/ru/articles/917710/
#ru
@django_prog | Другие наши каналы
Привет, хабр! В данной статье хочу рассказать больше чем обычно про оптимизацию запросов к базе данных в Django. Расскажу о том, как не только запрашивать, но и создавать или обновлять записи в базе. В статье будет много примеров, генерируемый SQL, типы данных, индексы и выводы планировщика запросов.
Данная статья подходит для как для начинающих, так и достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.
Читать: https://habr.com/ru/articles/917710/
#ru
@django_prog | Другие наши каналы
Forwarded from Код найма
Хватит искать работу в одиночку!
Ты крутой айтишник, но поиск работы превращается в квест: бесконечные резюме, где важны не навыки, а кейворды, десятки собеседований и постоянный стресс. Знакомо? Всё это выматывает и демотивирует. Мы тебя понимаем — и готовы поддержать!
Команда Tproger открывает первое реалити-шоу в Телеграм о поиске работы — «Код найма».
Вместе с опытными менторами ты пройдешь все этапы найма:
➡️ Прокачаешь резюме так, чтобы его заметили
➡️ Научишься проходить собеседования без волнения
➡️ Получишь честную обратную связь от рекрутеров
➡️ И, главное, дойдёшь до оффера в компании мечты!
Весь путь будет проходить на глазах у подписчиков канала — они тоже смогут давать советы и поддерживать тебя.
Хочешь стать героем нашего реалити и получить шанс найти работу мечты?
✍️ Заполняй анкету
Мы выберем трёх участников, которым поможем пройти весь путь до оффера.
Присоединяйся к «Коду найма» — и пусть твой следующий оффер станет началом новой жизни!
Ты крутой айтишник, но поиск работы превращается в квест: бесконечные резюме, где важны не навыки, а кейворды, десятки собеседований и постоянный стресс. Знакомо? Всё это выматывает и демотивирует. Мы тебя понимаем — и готовы поддержать!
Команда Tproger открывает первое реалити-шоу в Телеграм о поиске работы — «Код найма».
Вместе с опытными менторами ты пройдешь все этапы найма:
Весь путь будет проходить на глазах у подписчиков канала — они тоже смогут давать советы и поддерживать тебя.
Хочешь стать героем нашего реалити и получить шанс найти работу мечты?
✍️ Заполняй анкету
Мы выберем трёх участников, которым поможем пройти весь путь до оффера.
Присоединяйся к «Коду найма» — и пусть твой следующий оффер станет началом новой жизни!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Вселенная пушит тебе знаки…
Стоит ли сегодня деплоить на прод, начинать новый проект или лучше затаиться и почистить кэш? Вытащи карту из нашей цифровой колоды и получи мудрый совет судьбы перед новым релизом, багфиксом или планёркой.
Реклама
Стоит ли сегодня деплоить на прод, начинать новый проект или лучше затаиться и почистить кэш? Вытащи карту из нашей цифровой колоды и получи мудрый совет судьбы перед новым релизом, багфиксом или планёркой.
Реклама
DSF назвала Elena Williams участником месяца июня 2025 года. Она давно в сообществе Django, организует Django Girls в Австралии и работает над Кодексом поведения. Elena ценит стабильность и качество Django и активно развивает местные и международные проекты сообщества. Как построить сильное сообщество в IT и почему это важно? В статье рассказывается, как простая помощь — от поддержки на мероприятиях до онлайн-вкладов — может стать началом больших изменений и даже новых дружб в технических сообществах. Django Software Foundation и участники проекта продолжают развивать популярный веб-фреймворк Django, который остается одним из лидеров в мире разработки. Узнайте, как команда поддерживает и улучшает этот мощный инструмент для создания сайтов.
Подробности: https://www.djangoproject.com/weblog/2025/jun/17/dsf-member-of-the-month-elena-williams/
#en
@django_prog | Другие наши каналы
Подробности: https://www.djangoproject.com/weblog/2025/jun/17/dsf-member-of-the-month-elena-williams/
#en
@django_prog | Другие наши каналы
Как в 2025 году в Django реализовать аутентификацию через Google
Аутентификация через сторонние сервисы осуществляется на базе протокола OAuth 2.0, который поддерживается библиотекой Python Social Auth Django.
Для начала нам нужно установить библиотеку social-auth-core и дополнительную библиотеку social-auth-app-django для интеграции этой системы регистрации/аутентификации в Django. Оба компонента мы указали в списке зависимостей проекта в файле requirements.txt:
Читать: https://habr.com/ru/articles/920868/
#ru
@django_prog | Другие наши каналы
Аутентификация через сторонние сервисы осуществляется на базе протокола OAuth 2.0, который поддерживается библиотекой Python Social Auth Django.
Для начала нам нужно установить библиотеку social-auth-core и дополнительную библиотеку social-auth-app-django для интеграции этой системы регистрации/аутентификации в Django. Оба компонента мы указали в списке зависимостей проекта в файле requirements.txt:
Читать: https://habr.com/ru/articles/920868/
#ru
@django_prog | Другие наши каналы
Все не то, давай по-новой или модерация объектов в Django Rest Framework
— Ты не работал с пакетом django-moderation? И если нет, были ли у тебя задачи по модерации объектов, а конкретно: пользователь предлагает изменения, а другой пользователь либо отклоняет, либо принимает их?
— Не, не делал такого. Вот я все таки ох обескуражен от твоих занятий. Зачем такое вообще нужно?
... как всегда вырвано из контекста.
Читать: https://habr.com/ru/articles/672952/
#ru
@django_prog | Другие наши каналы
— Ты не работал с пакетом django-moderation? И если нет, были ли у тебя задачи по модерации объектов, а конкретно: пользователь предлагает изменения, а другой пользователь либо отклоняет, либо принимает их?
— Не, не делал такого. Вот я все таки ох обескуражен от твоих занятий. Зачем такое вообще нужно?
... как всегда вырвано из контекста.
Читать: https://habr.com/ru/articles/672952/
#ru
@django_prog | Другие наши каналы
Pet-проект для обучения или как я в одиночку писал Helpdesk
Ранее, у меня уже был опыт использования Helpdesk систем, но по разным причинам они не были внедрены у нас на предприятии. Хорошая возможность научится программировать, подумал я, и преступил к написанию собственного helpdesk’a.
Читать: https://habr.com/ru/articles/675492/
#ru
@django_prog | Другие наши каналы
Ранее, у меня уже был опыт использования Helpdesk систем, но по разным причинам они не были внедрены у нас на предприятии. Хорошая возможность научится программировать, подумал я, и преступил к написанию собственного helpdesk’a.
Читать: https://habr.com/ru/articles/675492/
#ru
@django_prog | Другие наши каналы
Выгрузка отфильтрованных пользователем данных из таблицы в админке Django
Генерал Венделер обладал редким даром излагать свои решения в краткой, ясной и доходчивой форме. (С) х/ф "Приключения принца Флоризеля."
Коллега обратился с запросом.
"Хочу забрать в свой уютный екзель данные с корпоративного сайта прямо в том виде, как я их там отфильтровал и отсортировал. Кнопку такую хочу рядом с табличкой сайта."
Сайт сделан на админке Django. Будем реализовывать это лапидарное ТЗ от коллеги.
Поехали
Читать: https://habr.com/ru/articles/677442/
#ru
@django_prog | Другие наши каналы
Генерал Венделер обладал редким даром излагать свои решения в краткой, ясной и доходчивой форме. (С) х/ф "Приключения принца Флоризеля."
Коллега обратился с запросом.
"Хочу забрать в свой уютный екзель данные с корпоративного сайта прямо в том виде, как я их там отфильтровал и отсортировал. Кнопку такую хочу рядом с табличкой сайта."
Сайт сделан на админке Django. Будем реализовывать это лапидарное ТЗ от коллеги.
Поехали
Читать: https://habr.com/ru/articles/677442/
#ru
@django_prog | Другие наши каналы
Как мы платежный шлюз тестируем
Всем привет! Сегодня мы поговорим об интеграционном тестировании платежного шлюза, но перед этим расскажу немного про нашу команду и наш проект. Мы (ContactPay) — самостоятельный финтех-стартап внутри QIWI, строим высокопроизводительный отказоустойчивый платежный шлюз и соответствуем стандартам безопасности PCI DSS.
Как платежный шлюз мы интегрированы со множеством внешних API, это могут быть и платежные системы, и сторонние сервисы мониторинга, антифрода, KYC (know your customer) и так далее.
Как финтех — работаем с большим количеством финансовых данных, и нам важны и сохранность, и консистентность и безопасность данных. Исходя из требований к нашему продукту у нас есть высокие требования к нашему коду, поэтому мы определили критичные для нашего проекта метрики кода и стараемся поддерживать их на высоком уровне.
Мы стараемся писать корректный код с наименьшим количеством багов. Код должен быть читаемым, самодокументируемым и поддерживаемым. Кроме того, он должен быть безопасным, так как мы финтех и у нас PCI DSS, это накладывает определенные требования к безопасности. А ещё код должен быть тестируемым.
Сегодня мы поговорим о двух метриках — корректность и тестируемость. Одна метрика напрямую влияет на другую, через тестируемость мы добиваемся корректности в том числе, мы проверяем, насколько код ожидаемо работает.
Перед тем как говорить об интеграционном тестировании, нужно понять, какой процесс мы будем тестировать. Рассмотрим сценарий интеграционного тестирования из жизни. Это сценарий выставления счета, на самом деле процесс проходит в несколько этапов, но мы рассмотрим в посте первые две стадии этого сценария.
Читать: https://habr.com/ru/companies/qiwi/articles/679220/
#ru
@django_prog | Другие наши каналы
Всем привет! Сегодня мы поговорим об интеграционном тестировании платежного шлюза, но перед этим расскажу немного про нашу команду и наш проект. Мы (ContactPay) — самостоятельный финтех-стартап внутри QIWI, строим высокопроизводительный отказоустойчивый платежный шлюз и соответствуем стандартам безопасности PCI DSS.
Как платежный шлюз мы интегрированы со множеством внешних API, это могут быть и платежные системы, и сторонние сервисы мониторинга, антифрода, KYC (know your customer) и так далее.
Как финтех — работаем с большим количеством финансовых данных, и нам важны и сохранность, и консистентность и безопасность данных. Исходя из требований к нашему продукту у нас есть высокие требования к нашему коду, поэтому мы определили критичные для нашего проекта метрики кода и стараемся поддерживать их на высоком уровне.
Мы стараемся писать корректный код с наименьшим количеством багов. Код должен быть читаемым, самодокументируемым и поддерживаемым. Кроме того, он должен быть безопасным, так как мы финтех и у нас PCI DSS, это накладывает определенные требования к безопасности. А ещё код должен быть тестируемым.
Сегодня мы поговорим о двух метриках — корректность и тестируемость. Одна метрика напрямую влияет на другую, через тестируемость мы добиваемся корректности в том числе, мы проверяем, насколько код ожидаемо работает.
Перед тем как говорить об интеграционном тестировании, нужно понять, какой процесс мы будем тестировать. Рассмотрим сценарий интеграционного тестирования из жизни. Это сценарий выставления счета, на самом деле процесс проходит в несколько этапов, но мы рассмотрим в посте первые две стадии этого сценария.
Читать: https://habr.com/ru/companies/qiwi/articles/679220/
#ru
@django_prog | Другие наши каналы
Как стажёр оптимизировал запросы и нашел баг в Django
Привет! Меня зовут Иван, я бэкенд-разработчик-стажёр в KTS.
Недавно я нашел баг в Django, создал тикет с исправлением и его приняли.
В статье расскажу подробнее — над чем работал, в чем была ошибка и почему ее сложно встретить. А также еще про один баг, который по классике оказался фичей.
Читать: https://habr.com/ru/companies/kts/articles/680572/
#ru
@django_prog | Другие наши каналы
Привет! Меня зовут Иван, я бэкенд-разработчик-стажёр в KTS.
Недавно я нашел баг в Django, создал тикет с исправлением и его приняли.
В статье расскажу подробнее — над чем работал, в чем была ошибка и почему ее сложно встретить. А также еще про один баг, который по классике оказался фичей.
Читать: https://habr.com/ru/companies/kts/articles/680572/
#ru
@django_prog | Другие наши каналы