Результаты опроса Django-разработчиков
JetBrains ещё в конце 2023 года провёл опрос (на английском) с целью узнать предпочтения джангистов. Результат довольно предсказуемый, однако все равно бесценный для тех, кто выбирает дополнительные компоненты.
Хороший способ для новичка познакомиться с общепринятыми дополняющими инструментами, сопровождающими Django-проект, будь то гео-бэкенд, кэш-хранилище или БД.
#факты
@zen_of_python
JetBrains ещё в конце 2023 года провёл опрос (на английском) с целью узнать предпочтения джангистов. Результат довольно предсказуемый, однако все равно бесценный для тех, кто выбирает дополнительные компоненты.
Хороший способ для новичка познакомиться с общепринятыми дополняющими инструментами, сопровождающими Django-проект, будь то гео-бэкенд, кэш-хранилище или БД.
#факты
@zen_of_python
👍1
Смысловой поиск в проекте на Django + PostgreSQL + pgvector
Доскональный англоязычный туториал на 25 минут про векторное расширение PSQL. Автор создаст соответствующие модели в проекте и прикрутит векторное хранилище, чтобы поисковая строка на сайте понимала также и синонимы слов.
#фреймворк #django #postgresql
@zen_of_python
Доскональный англоязычный туториал на 25 минут про векторное расширение PSQL. Автор создаст соответствующие модели в проекте и прикрутит векторное хранилище, чтобы поисковая строка на сайте понимала также и синонимы слов.
#фреймворк #django #postgresql
@zen_of_python
Flask или Django: что популярнее в 2024 году
Эти два фреймворка являются основными для веб-разработки на Python. Да, есть и другие, но эти самые популярные и востребованные.
Давайте посмотрим, как они себя чувствуют в этом году, какой популярнее, у кого больше сообщество и так далее. Вся важная информация в этом материале: https://learndjango.com/tutorials/flask-vs-django
#django #flask
Эти два фреймворка являются основными для веб-разработки на Python. Да, есть и другие, но эти самые популярные и востребованные.
Давайте посмотрим, как они себя чувствуют в этом году, какой популярнее, у кого больше сообщество и так далее. Вся важная информация в этом материале: https://learndjango.com/tutorials/flask-vs-django
#django #flask
🤣1
Создание фуллстек-приложения с помощью Django, Vue.js и Flowbite
Эти три технологии обеспечивают быстрый и простой способ для начинающих освоить разработку веб-приложений, создавая при этом красивый пользовательский интерфейс.
В этом руководстве вы увидите, как настроить эти инструменты и создать с помощью них первый проект:
https://chesda.hashnode.dev/django-vue-flowbite
#django #vue #веб
Эти три технологии обеспечивают быстрый и простой способ для начинающих освоить разработку веб-приложений, создавая при этом красивый пользовательский интерфейс.
В этом руководстве вы увидите, как настроить эти инструменты и создать с помощью них первый проект:
https://chesda.hashnode.dev/django-vue-flowbite
#django #vue #веб
❤5
Как устроен жизненный цикл запросов в Django
В мире веб-разработки понимание жизненного цикла запросов имеет решающее значение для оптимизации производительности, устранения проблем с отладкой и создания надежного приложения. Эта статья поможет вам разобраться с каждым из этапов жизненного цикла в Django.
#django #веб
В мире веб-разработки понимание жизненного цикла запросов имеет решающее значение для оптимизации производительности, устранения проблем с отладкой и создания надежного приложения. Эта статья поможет вам разобраться с каждым из этапов жизненного цикла в Django.
#django #веб
👍2👎1
Django и JWT: как настроить систему безопасной аутентификации
Как вы, возможно, знаете, защита пользовательских данных и обеспечение бесперебойной аутентификации крайне важны для современных веб-приложений. JWT предлагает современный и эффективный способ обработки пользовательских сессий без необходимости хранить их данные на стороне сервера, что делает его популярным выбором среди разработчиков по всему миру.
Как настроить JWT для вашего следующего проекта, можете узнать в этой статье.
#django #jwt
Как вы, возможно, знаете, защита пользовательских данных и обеспечение бесперебойной аутентификации крайне важны для современных веб-приложений. JWT предлагает современный и эффективный способ обработки пользовательских сессий без необходимости хранить их данные на стороне сервера, что делает его популярным выбором среди разработчиков по всему миру.
Как настроить JWT для вашего следующего проекта, можете узнать в этой статье.
#django #jwt
✍4👍2
Опрос Django + JetBrains
Если вам есть что сказать создателям Django, примите участие в официальном исследовании пользовательского опыта на djangoproject.com. Спросят, как водится, про версию фреймворка, используемое хранилище, темплейты и прочие тонкости. Для новичков это внезапно может стать хорошей возможностью познакомиться с основной терминологией и популярными инструментами.
Займет около 15 минут.
Описание
Перейти к опросу
#django
@zen_of_python
Если вам есть что сказать создателям Django, примите участие в официальном исследовании пользовательского опыта на djangoproject.com. Спросят, как водится, про версию фреймворка, используемое хранилище, темплейты и прочие тонкости. Для новичков это внезапно может стать хорошей возможностью познакомиться с основной терминологией и популярными инструментами.
Займет около 15 минут.
Описание
Перейти к опросу
#django
@zen_of_python
Как настроить аутентификацию в веб-приложениях на Django
В Tproger рассмотрели основные способы настройки аутентификации в веб-приложениях на Django, начиная с базового входа и регистрации и заканчивая интеграцией с социальными сетями и кастомными моделями.
#безопасность #django
@zen_of_python
В Tproger рассмотрели основные способы настройки аутентификации в веб-приложениях на Django, начиная с базового входа и регистрации и заканчивая интеграцией с социальными сетями и кастомными моделями.
#безопасность #django
@zen_of_python
🥱3👎1
Django REST Framework: создаем API
Помимо сайта, на Django можно написать еще и API. На realpython.com выложили двухчасовой англоязычный бесплатный плейлист, который разложит по полочкам основные понятия и поможет собрать ваш первый API.
#django #api
@zen_of_python
Помимо сайта, на Django можно написать еще и API. На realpython.com выложили двухчасовой англоязычный бесплатный плейлист, который разложит по полочкам основные понятия и поможет собрать ваш первый API.
#django #api
@zen_of_python
❤2👍2
Вышел Django 5.2
В этом релизе представлены следующие ключевые нововведения:
— Автоматический импорт всех моделей в оболочке Django;
— Поддержка составных первичных ключей с использованием
— Упрощенное переопределение
Про CompositePrimaryKey
В этом примере модель
#django #факт
@zen_of_python
В этом релизе представлены следующие ключевые нововведения:
— Автоматический импорт всех моделей в оболочке Django;
— Поддержка составных первичных ключей с использованием
django.db.models.CompositePrimaryKey;— Упрощенное переопределение
BoundField на уровне формы, поля или проекта.Про CompositePrimaryKey
CompositePrimaryKey позволяет создавать первичные ключи, состоящие из нескольких полей, что особенно полезно при моделировании связей многие-ко-многим.
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
class Order(models.Model):
reference = models.CharField(max_length=20, primary_key=True)
class OrderLineItem(models.Model):
pk = models.CompositePrimaryKey("product_id", "order_id")
product = models.ForeignKey(Product, on_delete=models.CASCADE)
order = models.ForeignKey(Order, on_delete=models.CASCADE)
quantity = models.IntegerField()
В этом примере модель
OrderLineItem использует составной первичный ключ, состоящий из полей product_id и order_id. Это гарантирует уникальность каждой комбинации продукта и заказа. Ранее для достижения подобного поведения приходилось использовать дополнительные настройки или сторонние библиотеки. #django #факт
@zen_of_python
👍4❤3🎃1
Как открывать ссылки Django-сайта в приложениях Apple и Android
Для этого нужна двусторонняя связь: приложение объявляет домены, ссылки которых обрабатывает, а сайт подтверждает разрешённые приложения. Одного файла на сервере недостаточно.
Адам Джонсон показывает, как отдавать из Django файлы apple-app-site-association и assetlinks.json по адресам в
В разборе есть тесты заголовков, корректности JSON и идентификаторов приложений, а также проверки после развёртывания через сервисы Apple и Google. Ошибки здесь незаметны: ссылка просто открывается в браузере.
#django #тестирование
Для этого нужна двусторонняя связь: приложение объявляет домены, ссылки которых обрабатывает, а сайт подтверждает разрешённые приложения. Одного файла на сервере недостаточно.
Адам Джонсон показывает, как отдавать из Django файлы apple-app-site-association и assetlinks.json по адресам в
/.well-known/. Нужны HTTPS, ответ 200 без редиректов и тип содержимого application/json. Apple-файл хранится с расширением .json, чтобы FileResponse определил тип, но URL остаётся без расширения.В разборе есть тесты заголовков, корректности JSON и идентификаторов приложений, а также проверки после развёртывания через сервисы Apple и Google. Ошибки здесь незаметны: ссылка просто открывается в браузере.
#django #тестирование
security.txt в Django: контакт для сообщений об уязвимостях
Исследователь нашёл уязвимость на сайте. Куда ему писать? Файл
Адам Джонсон разбирает реализацию для Django: отдачу файла через
Для сопровождения пригодится отдельная проверка срока действия. Корректная дата в файле ещё не означает, что контакт актуален. Автор добавляет системную проверку Django: за 30 дней до истечения срока она начинает выдавать предупреждение, не прерывая команду. Это повод проверить контакты и обновить
#django #тестирование
Исследователь нашёл уязвимость на сайте. Куда ему писать? Файл
/.well-known/security.txt даёт публичный ответ: поле Contact указывает способ связи, а Expires — дату, после которой сведения считаются устаревшими.Адам Джонсон разбирает реализацию для Django: отдачу файла через
FileResponse, доступ без авторизации и тесты ответа. В примере проверяются тип содержимого, обязательные поля и разрешённые методы HTTP.Для сопровождения пригодится отдельная проверка срока действия. Корректная дата в файле ещё не означает, что контакт актуален. Автор добавляет системную проверку Django: за 30 дней до истечения срока она начинает выдавать предупреждение, не прерывая команду. Это повод проверить контакты и обновить
Expires.#django #тестирование
❤3
Как добавить MCP-сервер в Django-проект
django-mcpz позволяет зарегистрировать Python-функцию как MCP-инструмент и подключить сервер в urls.py как обычное представление. Функция получает HttpRequest, поэтому может использовать request.user и ORM проекта.
В примере Адама Джонсона инструмент считает заказы с необязательным фильтром статуса. Параметры и результат описаны через msgspec.Struct: библиотека строит JSON Schema и проверяет аргументы до вызова функции. Реализация рассчитана на обычное синхронное WSGI-развёртывание.
Аутентификация задаётся явно. Для клиентских инструментов есть отзываемые bearer-токены, для OAuth-клиентов — отдельное приложение авторизации. Аннотация read_only описывает инструмент для клиента; реальные права доступа к данным всё равно должен проверять сервер.
#python #django
django-mcpz позволяет зарегистрировать Python-функцию как MCP-инструмент и подключить сервер в urls.py как обычное представление. Функция получает HttpRequest, поэтому может использовать request.user и ORM проекта.
В примере Адама Джонсона инструмент считает заказы с необязательным фильтром статуса. Параметры и результат описаны через msgspec.Struct: библиотека строит JSON Schema и проверяет аргументы до вызова функции. Реализация рассчитана на обычное синхронное WSGI-развёртывание.
Аутентификация задаётся явно. Для клиентских инструментов есть отзываемые bearer-токены, для OAuth-клиентов — отдельное приложение авторизации. Аннотация read_only описывает инструмент для клиента; реальные права доступа к данным всё равно должен проверять сервер.
#python #django
Как менеджер паролей найдёт вашу форму Django
Менеджер паролей обнаружил утечку и предлагает заменить пароль. Чтобы открыть нужную страницу, он может обратиться к
В Django достаточно добавить RedirectView с pattern_name, указывающим на публичную форму смены пароля. URL стандарта не содержит завершающего слеша, а редирект должен быть временным.
Проверьте имя целевого маршрута тестом: Django разрешает его при запросе, поэтому опечатка может остаться незаметной до первого обращения.
Ещё одна проверка — неизвестный URL должен возвращать 404. Если catch-all выдаёт 200 на любой путь, менеджер паролей может проигнорировать этот механизм.
#python #django
Менеджер паролей обнаружил утечку и предлагает заменить пароль. Чтобы открыть нужную страницу, он может обратиться к
/.well-known/change-password.В Django достаточно добавить RedirectView с pattern_name, указывающим на публичную форму смены пароля. URL стандарта не содержит завершающего слеша, а редирект должен быть временным.
Проверьте имя целевого маршрута тестом: Django разрешает его при запросе, поэтому опечатка может остаться незаметной до первого обращения.
Ещё одна проверка — неизвестный URL должен возвращать 404. Если catch-all выдаёт 200 на любой путь, менеджер паролей может проигнорировать этот механизм.
#python #django
Как запустить тесты самого Django через uv
Хотите исправить баг в Django? Сначала понадобится окружение для тестов фреймворка. Установки Django из PyPI для этого недостаточно: нужны исходники и тестовые зависимости.
Адам Джонсон показывает настройку через uv. После клонирования репозитория выполните из его корня:
Editable-установка позволяет тестам использовать ваш изменённый код. Для запуска можно указать конкретные тестовые модули вместо всего набора.
Одна из возможных проблем — сборка
#python #django
Хотите исправить баг в Django? Сначала понадобится окружение для тестов фреймворка. Установки Django из PyPI для этого недостаточно: нужны исходники и тестовые зависимости.
Адам Джонсон показывает настройку через uv. После клонирования репозитория выполните из его корня:
uv venv
uv pip install -e . -r tests/requirements/py3.txt
uv run python tests/runtests.py
Editable-установка позволяет тестам использовать ваш изменённый код. Для запуска можно указать конкретные тестовые модули вместо всего набора.
Одна из возможных проблем — сборка
pylibmc, которой нужны компилятор и заголовки libmemcached. Без этой зависимости остальные тесты можно запускать, но проверки, которым она нужна, будут пропущены. Учитывайте это, если правка затрагивает кеширование.#python #django