Django Unleashed Framework

@django_prog


Лучшие материалы по разработке на фреймворке Django на русском и английском языке

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media

Django Unleashed Framework

21 Oct, 07:31


🎓 Управление данными студентов в Django

В статье описывается процесс создания проекта на Django для управления информацией о студентах. С помощью Class Based Views, проект позволяет добавлять, обновлять, удалять и просматривать данные студентов. Приведены пошаговые инструкции по настройке окружения и работы с компонентами Django на Apple Mac.

Подробности: https://vidyesh.hashnode.dev/create-a-small-project-that-will-capture-student-details-and-will-allow-the-user-to-insert-update-delete-and-view-all-the-student-details

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

20 Oct, 08:21


🚀 Деплой Django приложения на AWS EKS

Узнайте, как развернуть масштабируемое Django приложение на AWS EKS, используя eksctl и kubectl. В статье описан процесс установки и настройки необходимых инструментов, создания кластеров, узлов и сервисов для эффективного управления ресурсами. Эта структура обеспечивает простое масштабирование и надежную обработку трафика.

Подробности: https://jenkinscicd.hashnode.dev/kubernetes-setup-for-your-django-notes-app

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

18 Oct, 07:39


Встроенные механизмы безопасности фреймворков Python

Проводя аудиты процессов разработки ПО, мы часто слышим, что функционал реализован во фреймворке, и это может вызывать вопросы со стороны безопасников.

Python, будучи одним из популярных языков программирования, предлагает множество фреймворков, каждый из которых должен быть защищен и иметь встроенные механизмы безопасности либо возможности для встраивания этих механизмов. В этой статье попробуем разобраться, какие возможности действительно предоставляют фреймворки, рассмотрим механизмы безопасности и способы их настройки на примере распространенных фреймворков: Django, FastAPI и Flask.


Читать: https://habr.com/ru/companies/ussc/articles/851578/

#ru

@django_prog | Другие наши каналы

Django Unleashed Framework

17 Oct, 13:11


Интеграция Django и Angular

На тот случай, когда вам надо делать то, что не хочется.

Требования: Django > 1.8, Angular 8, 9 или выше. Мы будем использовать Angular 9.

Давайте приступим непосредственно к делу. Мы надеемся, что у вас уже сделана базовая установка Django, а именно:
- Установка виртуальной среды (Vritualenv setup)
- Django проект
- Установка статичных файлов и шаблонов (Static files and template files setup)
Теперь установим Angular:
npm install -g @angular/cli
Если вы работаете под Windows, добавьте команду ng в переменную Path. В противном случае для всех последующих команд в этой статье нужно будет вводить npm run ng <ваша.

1. В Django создайте представление Landing и URL, указывающий на это представление. Визуализируйте шаблон, который вы собираетесь использовать с Angular. Скажем, файл angular_index.html, находящийся в каталоге шаблонов Django.
2. Теперь из командной строки создадим новый проект angular в статическом каталоге Django. ng new frontend.
3. Теперь базовая структура ваших приложений Angular готова. Для тестирования запустите команду ng build. Это скомпилирует ваш код и создаст ряд файлов в каталоге dist, который, в свою очередь, будет создан в каталоге frontend вашего angular-приложения. Теперь перейдите в файл angular_index.html и включите скомпилированные файлы runtime-es2015.js, polyfills.js, styles-es2015.js, vendor-es2015.js, main-es2015.js в JS-блок шаблона Django.

И теперь, почти закончив, просто добавьте в файл angular_index.html:

<app-root

А затем запустите Python-сервер следующей командой: python manage.py runserver. Перейдя по указанному URL, вы увидите ваше Angular-приложение.

Пока все работает нормально, но дело в том, что при каждом внесении изменений в код вам приходится запускать ng build для компиляции кода angular, и лишь затем вы можете увидеть результат этих изменений в вашем браузере.

Вы можете подумать: «А почему бы не использовать ng serve?» Да, ng serve — отличный вариант. Но, к сожалению, он не предоставляет нам скомпилированные файлы, а сохраняет эти файлы в памяти. Поэтому для разработки нам нужно использовать опцию watch в ng build .

Запустите команду ng build --watch в терминале, и при каждом изменении файла будет происходить горячая перезагрузка. Но теперь ваш браузер ничего не показывает. Дело в том, что в режиме просмотра команда ng build --watch создает другие имена файлов, без суффикса es2015. Поэтому вам нужно изменить имена этих файлов в файле angular_index.html и включить туда следующие файлы:

Для лучшей конфигурации можно взять окружение из файла settings.py. Тогда при помощи условия if вы сможете устанавливать все файлы в соответствии с этим окружением.

На всякий случай: если вы добавите поддержку IE, то будет сгенерирован дополнительный файл. Чтобы все отображалось идеально, вам нужно будет внести и этот файл.
Сообщение Интеграция Django и Angular появились сначала на Pythonist.

Читать: https://pythonist.ru/?p=11326

@django_prog | Другие наши каналы

Django Unleashed Framework

17 Oct, 13:11


Асинхронность в Django: бесконечная история

В прошлом году, когда только вышел Django 3.0, в сообществе разработчиков было много шума по поводу того, как именно Django 3.0 теперь поддерживает асинхронность. Но что конкретно это означает для большинства разработчиков? Думаю, сейчас мы это выясним.

Хотя это и правда, что фреймворк Django поддерживает асинхронный Python, но он пока не поддерживает асинхронные представления (views) и промежуточное ПО. Это все должно появиться в следующей версии.

Согласно документации Django:

Есть ограниченная поддержка других частей асинхронной экосистемы; а именно, Django может изначально использовать ASGI и кроме того имеет некоторую поддержку асинхронной безопасности.

Мы допускаем что многие из вас могут не знать, что на самом деле означает асинхронность. Ведь возможно, вы просто использовали Python в том виде, в котором он есть. Поэтому мы проясним это понятие.

Что такое асинхронный код?

В отличии от Java и других мультипоточных языков, Python — язык однопоточный. Это означает, что в каждый отдельный момент времени он может выполнять только одну задачу, а не несколько.

Поскольку Django — это веб-фреймворк, построенный на основе Python, он также не является асинхронным. А это означает, что когда выполнение одной или нескольких операций занимает слишком много времени, в приложении Django происходит зависание представления. Это может быть проблемой.

Если вы попытаетесь смоделировать событие блокировки в представлении с заданным временем сна (sleep из библиотеки time в Python), вы заметите, что представление застревает на определенное время, прежде чем двигаться дальше.

Из этого наблюдения можно сделать вывод, что фреймворк Django без реализованных в нем очередей на самом деле не предназначен для операций, связанных со вводом-выводом, и это — серьезная проблема для разработчиков. Если вы программируете на Python, то, возможно, уже знаете: чтобы сделать код Python асинхронным, можно просто взять и использовать модуль asyncio.

Но как насчет Django? Как мне сделать его асинхронным?

Ну, чисто технически, это сделать невозможно. Но есть очень удобный способ обойти это, и большинство разработчиков, конечно же, не против это сделать. Так как это реально работает. Даже Instagram масштабировался таким образом, а на данный момент он является крупнейшим примером внедрения Django.

Итак, о чем мы там раньше говорили?

Celery. Вот то, что нам нужно.

Библиотека Celery реализует асинхронную очередь задач, основанную на распределенной системе передачи сообщений. Она ориентирована на работу в реальном времени, но также поддерживает функцию планирования. Так что да, вы вполне можете реализовать асинхронные функции в Django.

С чего же нам начать?

В первую очередь мы рекомендуем обратиться непосредственно к документации самой библиотеки Сelery. Она весьма хорошо написана.

Надеемся, что данная статья дала вам ответ на вопрос, действительно ли фреймворк Django асинхронен.

Сообщение Асинхронность в Django: бесконечная история появились сначала на Pythonist.

Читать: https://pythonist.ru/?p=11258

@django_prog | Другие наши каналы

Django Unleashed Framework

17 Oct, 13:11


6 тегов шаблонов Django, нечасто представленных в руководствах

Данная статья предназначена для тех, кто не очень любит возиться с документацией.

1. for…empty

Тег for может иметь необязательный элемент {% empty%}, текст которого отображается, если имеющийся массив пуст или не может быть найден:
{% for student in student_list %} ... {% empty %} ... {% endfor %}
Это эквивалентно следущему коду:
{% if student-list %} {% for student in student_list %} ... {% endfor %} {% else %} ... {% endif %}
2. lorem

Нет, вам не нужны никакие другие пакеты для использования текста lorem. Данный тег отображает на экране известный псевдолатинский текст “lorem ipsum”. Это иногда бывает полезным для заполнения шаблонов примерными данными, если конечно у вас пока нет никаких других данных.
{% lorem [count] [method] [random] %}
Напрмер:

* {% lorem %} выведет обычный абзац «lorem ipsum»;
* {% lorem 3 p %} выведет обычный абзац «lorem ipsum» и два случайных абзаца, каждый из которых заключен в теги HTML

;
* {% lorem 2 w random %} выведет два случайных латинских слова;

3. now

Отображает текущую дату и / или время в формате, соответствующем заданной строке. Такая строка может содержать символы спецификаторов в формате, описанном в разделе фильтра даты.
{% npw "jS F Y" %}
4. resetcycle

Сбрасывает предыдущий цикл таким образом, чтобы при следующем вызове он начинал работу с первого элемента. Без аргументов тег {% resetcycle%} сбросит последний цикл {% cycle%}, который определен в данном шаблоне.
{% for coach in coach_list %} {{ coach.name }} {% for athlete in coach.athlete_set.all %}
José Mourinho

Thibaut Courtois

John Terry

Eden Hazard

Carlo Ancelotti

Manuel Neuer

Thomas Müller

5. verbatim

* Останавливает рендеринг содержимого данного тега;
* обычно используется для разрешения конфликтов с объектом layer JavaScript, который часто конфликтует с синтаксисом Django

Например:
{% verabtim %} {{ if dying }} Still alive. {{/if}} {% endverbatim %}
Вы также можете назначить специальный закрывающий тег, позволяющий использовать {% endverbatim %} как часть неотрисованного контента:
{% verbatim myblock %}
Избегайте рендеринга шаблонов через:
{% verbatim %} {% endverbatim %} block. {% endverbatim myblock %}
6. widthratio

При создании гистограмм и подобных объектов, этот тег вычисляет отношение данного значения к максимальному значению, а затем умножает это отношение на максимальную ширину.

Если this_value равно 175, max_value равно 200, а max_width равно 100, изображение в приведенном выше примере будет иметь ширину 88 пикселей (потому что 175/200 = 0,875; 0,875 * 100 = 87,5, округляется до 88).

В некоторых случаях вы можете захотеть сохранить результат вычисления ширины в переменной. Это можно сделать, например, следующим образом:
{% widthratio this_value max_value max_width as width %} {% blocktrans %}The width is: {{ width }}{%endblocktrans%}
Сообщение 6 тегов шаблонов Django, нечасто представленных в руководствах появились сначала на Pythonist.

Читать: https://pythonist.ru/?p=11253

@django_prog | Другие наши каналы

Django Unleashed Framework

16 Oct, 14:51


Открытые офисные часы DSF: присоединяйтесь!

Django Software Foundation запускает еженедельные открытые офисные часы для работы над проектами, связанными с DSF. Встречи по средам в 18:00 UTC. Чтобы присоединиться, свяжитесь с членами совета для получения ссылки на видеозвонок. Не упустите шанс внести вклад!

Подробности: https://www.djangoproject.com/weblog/2024/oct/16/announcing-weekly-dsf-office-hours/

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

14 Oct, 11:48


🔒 Укрепляем безопасность Django с помощью кастомного Middleware

В эпоху цифровых угроз создание защищенных приложений становится необходимостью. Django предлагает встроенные средства безопасности, но кастомное Middleware позволяет повысить защиту, внедряя такие меры, как белый список IP, ограничение запросов и добавление защитных заголовков. Узнайте больше о практических примерах и улучшите безопасность вашего приложения! 🔑 Защита Django приложений с помощью промежуточного ПО

Пользовательская промежуточная программа в Django позволяет улучшить безопасность вашего приложения. Например, можно реализовать JWT-аутентификацию, санитизацию данных, CORS настройки и политику безопасности контента (CSP). Эти шаги помогают предотвратить несанкционированный доступ и атаки, улучшая защиту ресурсов. Как обеспечить безопасность в Django с помощью Middleware

Использование кастомного middleware в Django позволяет применять индивидуальные меры безопасности. Это гибкое решение интегрируется со встроенными механизмами защиты и помогает эффективно контролировать потоки запросов и ответов.

Подробности: https://nilebits.hashnode.dev/how-to-build-secure-django-apps-by-using-custom-middleware

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

13 Oct, 17:09


🚀 Исследование: Фокус таймер на Django и Redis

Tymr — облачный таймер, поддерживающий концентрацию в реальном времени. Используя Django Channels и Redis Scheduler, приложение обеспечивает бесперебойную работу таймера даже при выключенном браузере. Узнайте, как взаимодействие с WebSocket и SQLite3 создают плавный и точный пользовательский опыт. 🔧 Многозадачность в Django: Async Consumers и блокировки

Статья раскрывает тонкости работы с Django, включая использование блокировок для предотвращения взаимоблокировок и внедрение асинхронных потребителей с Django Channels. Это позволяет эффективно управлять подключениями пользователей в реальном времени, улучшая производительность приложений.

Подробности: https://selftaughtdev.hashnode.dev/case-study-building-a-real-time-focus-timer-with-django-redis-and-websockets

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

13 Oct, 15:24


🛠 Полное руководство по развёртыванию Django

Ищете руководство по развертыванию Django на сервере Linux? Эта статья предлагает пошаговую инструкцию для начинающих: настройка VPS, безопасность через SSH и фаервол, установка необходимого ПО, настройка Nginx и HTTPS, а также другие важные аспекты. Начните с нашей инструкции и узнайте больше! Развертывание Django на VPS: краткое руководство

Узнайте, как развернуть ваше Django-приложение с использованием Uvicorn и Nginx, настроить SSL с Certbot, и управлять процессами через Supervisor. Решение для создания отказоустойчивых приложений с поддержкой автоматического перезапуска и мониторинга процессов.

Подробности: https://selftaughtdev.hashnode.dev/comprehensive-django-deployment-guide-for-beginners

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

11 Oct, 19:55


Как создать блог на Django: шаг за шагом
Хотите создать систему блогов на Django? Статья рассказывает, как настроить модели для постов, создать представления для управления контентом и построить шаблоны для интерфейса. Узнайте, как сделать это поэтапно и без лишних сложностей!

Подробности: https://rvats20.hashnode.dev/building-a-blog-post-application-in-django-easy-tutorial

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

10 Oct, 19:14


Быстрая настройка Django с Nginx

Опубликовать Django-приложение с помощью Nginx проще, чем кажется! Эта статья описывает каждый этап — от установки Nginx на Ubuntu EC2 до настройки реверс-прокси и развертывания вашего проекта через Docker. Начните управлять своим сервером с легкостью и уверенностью!

Подробности: https://praveshstwt.hashnode.dev/deploying-a-django-app-with-nginx-a-beginners-guide

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

10 Oct, 02:34


WebRTC: Взгляд за кулисы

WebRTC позволяет браузерам обмениваться данными в реальном времени без центрального сервера, но как это работает? Статья объясняет, почему оба браузера должны запускать специальный код и как они действуют как временные серверы. Узнайте, как эта технология открывает путь для децентрализованных приложений.

Подробности: https://ritiksharmaaa.hashnode.dev/understanding-webrtc-behind-the-scenes-a-developers-journey-from-confusion-to-clarity

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

09 Oct, 16:57


Создаем кастомную модель пользователя в Django

В свежем материале вы узнаете, как создать кастомную модель пользователя в Django, когда встроенная модель не подходит. Мы обсудим создание модели, замену имени пользователя на email, добавление новых полей и создание суперпользователя для тестирования. Ваш проект станет гибче и функциональнее!

Подробности: https://simplykeep.in/day-4-implementing-a-custom-user-model-in-django-and-creating-a-superuser

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

09 Oct, 03:53


Поддержка Django и Open Source Pledge

Тема устойчивости open source проектов важна как никогда. Django Software Foundation и Sentry присоединились к инициативе Open Source Pledge, направленной на финансовую поддержку разработчиков свободного ПО. Это шаг к стабильности и безопасности IT-экосистемы.

Подробности: https://www.djangoproject.com/weblog/2024/oct/08/why-django-supports-the-open-source-pledge/

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

09 Oct, 02:36


Новинки Python/FastAPI/Django за неделю

В обзоре представлены ключевые события в мире Python/FastAPI/Django за последнюю неделю: релизы Python 3.12.7 и 3.13.0 RC3, обновления по Django и новости из сферы machine learning. Интересные проекты, автоматизация и современные инструменты — всё это в свежей подборке!

Подробности: https://poovarasu.hashnode.dev/stay-updated-with-pythonfastapidjango-weekly-news-summary-30092024-06102024

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

08 Oct, 15:01


🚀 Новая версия Django 5.1.2

Вышел релиз исправления ошибок Django 5.1.2. Теперь доступен для загрузки на сайте и в Python Package Index. Если вы разработчик, не забудьте обновить свою версию, чтобы воспользоваться всеми улучшениями и поддержкой.

Подробности: https://www.djangoproject.com/weblog/2024/oct/08/bugfix-releases/

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

07 Oct, 15:33


Обновления в управлении магазином и товарами на Django

Об авторе: Абубакар Хан Лаквера делится последними улучшениями в своем проекте на Django, включая поиск по ключевым словам и улучшения для админов. Он внедрил расчет общего числа товаров и начал разработку системы корзины. Подробности на GitHub!

Подробности: https://abubakarkhanlakhwera.hashnode.dev/week-in-review-enhancing-store-and-item-management-in-django

#en

@django_prog | Другие наши каналы

Django Unleashed Framework

07 Oct, 12:31


Путь Django-разработчика: начало пути

Текст: Коллинс Мучира делится своим опытом погружения в мир программирования. Он осознал, что лучше самостоятельно изучать основы, чем полагаться на автоматизацию с помощью ИИ. Коллинс решил задокументировать свой путь к первой работе. Узнайте больше о его путешествии в разработке.

Подробности: https://collinsmuchira.hashnode.dev/django-developer-journey

#en

@django_prog | Другие наши каналы