10 пакетов Django, которые вы должны знать

Вы вскоре собираетесь начать проект на Django? Вероятно, вам любопытно, есть ли какие-нибудь полезные пакеты, которые могли бы вам помочь. Мы составили  список самых нужных пакетов Django. Приложенные короткие описания и ссылки на сами пакеты помогут вам начать работать с ними как можно скорее. Все пакеты, которые мы выбрали, поддерживают Python 3 и находятся в стабильной версии.

Готовы ли вы исследовать мир пакетов Django? Погружаемся!

Но прежде всего — является ли Django библиотекой?

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

Django — бесплатный высокоуровневый фреймворк с открытым кодом для разработки веб-приложений на Python, позволяющий ускорить разработку и создавать более чистый дизайн. Он был создан избавить программистов от лишних хлопот, связанных с разработкой веб-приложений, без необходимости заново создавать велосипед. А значит – писать меньше строк кода!

Благодаря своей невероятной скорости, высокой безопасности, гибкости и масштабируемости Django быстро набирает обороты и сегодня является одной из самых популярных технологий для веб-разработки на Python.

Разница между модулями и пакетами в Django?

Модули и пакеты иногда путают друг с другом, поэтому, прежде чем перейти к нашему списку, давайте рассмотрим разницу между ними.

Модуль — это один файл Python, а пакет — это каталог таких модулей. В отличие от простых директорий, содержащих скрипты Python, пакет содержит еще и дополнительный файл — _init_.py.

Лучшие пакеты Django

Примечание: поскольку есть несколько веских причин, по которым написание фронтенда при помощи Django является не лучшей идеей, мы решили сосредоточиться на пакетах для бэкенд-проектов.

1. Sentry-sdk

Описание:

Sentry-sdk — обязательный инструмент для любого проекта Django, так как он позволяет нам быть в курсе всех связанных с кодом проблем в приложении.

Во-первых, пакет немедленно предупреждает нас обо всех ранее неучтенных исключениях, которые проявились в продакшене.

Во-вторых, мы можем сами обнаружить проблему и отправить информацию о ней в sentry, добавив дополнительные данные.

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

Чем полезен этот пакет:

  • Ситуация, когда сервер выдает ошибку, и вам не нужно разбираться в чем именно была проблема.

Особенности:

  • Sentry будет ловить любые неучтенные исключения и немедленно отправлять нам полную информацию о проблеме.
  • Когда код работает правильно, sentry полезен в качестве системы оповещения, в которую мы можем отправлять ошибки или логи о любых ненормальных событиях.

2. Django REST framework

Описание:

Если вы хотите написать API архитектурных ограничений REST, Django REST framework сделает это за вас. Также он автоматически сгенерирует правильную документацию, поддерживающую реализацию пакета в проектах.

Чем полезен этот пакет:

Нет необходимости самостоятельно писать REST API.

Особенности:

  • Для создания конечных точек REST API для ваших моделей потребуется всего несколько строк кода.
  • Автоматически сгенерированная документация — отличная вещь, потому что она всегда меняется вместе с конечными точками.

3. Django-extensions

Описание:

Django-extensions — набор инструментов, которые помогут вам в вашей повседневной работе. JSONField был впервые представлен в этом пакете еще до того, как он официально стал частью Django 1.9 (для PostgreSQL, конечно).

Чем полезен этот пакет:

  • Добавляет кучу случайных полезных функций.

Особенности:

  • Команда shell_plus запускает оболочку Django с предварительно загруженными файлами, классами и моделями, которые ускоряют любую работу с этой оболочкой.
  • Дополнительное поле AutoSlugField генерирует уникальный slug для заданных данных.
  • Дополнительные поля CreationDateTimeField и ModificationDateTimeField сохраняют в базе данных первое и последнее изменение даты и времени соответственно.

4. Django-rest-framework-jwt

Описание:

При использовании DRF для некоторых проектов необходимо добавить JWT-аутентификацию. Для этого и предназначен этот пакет.

Чем полезен этот пакет:

  • Вам не придется самостоятельно реализовывать токен аутентификации для API и управлять им.

Особенности:

  • Предоставляет все необходимое для JWT-аутентификации: конечную точку входа и класс Django auth.

5. Django-rest-swagger

Описание:

DRF предлагает автоматически сгенерированную документацию, а этот пакет делает документацию для ваших проектов более красивой.

Чем полезен этот пакет:

  • Бесплатное создание красивой документации на основе API DRF.

Особенности:

  • Хорошая автоматическая документация для ваших конечных точек.
  • Пользовательские конечные точки легко документировать вручную.

6. Easy-thumbnails

Описание:

Любой веб-сервис, позволяющий загружать и просматривать фотографии, нуждается в возможности создания миниатюр. Easy-thumbnails обеспечивает это.

Чем полезен этот пакет:

  • Все серверы, на которых размещены изображения, нуждаются в миниатюрах, и этот пакет является решением проблемы.

Особенности:

  • Динамическое создание миниатюр на основе загруженного изображения.

7. Django-simple-history

Описание:

Django-simple-history хранит историю изменения записей. Если клиент имеет доступ к базе данных через панель администратора, он может что-то изменить по ошибке и захотеть отменить это изменение или, скажем, вернуться…

Чем полезен этот пакет:

  • Сохраняет историю измененных строк в базе данных.

Особенности:

  • Отслеживает все изменения модели, в то время как настройка не занимает много времени.

8. Django-adminactions

Описание:

Простой экспорт данных в известные типы файлов, такие как CSV или XLS. Вы также можете экспортировать данные в качестве приспособления на тестовый сервер, и это приспособление может содержать внешние ключи. Django-adminactions также позволяет генерировать графики в панели администратора.

Чем полезен этот пакет:

  • Добавляет некоторые функции, которые могут пригодиться на ранних стадиях разработки приложения.

Особенности:

  • Экспорт данных из админки в XSL, CSV, Fixture.

9. Django-model-utils

Описание:

Django-model-utils — набор полезных утилит для моделей Django.

Чем полезен этот пакет:

  • Добавляет некоторые модели и поля, которые помогают с некоторыми распространенными проблемами.

Особенности:

  • Поле MonitorField, которое является полем DateTime и обновляется до now() каждый раз, когда ему требуется обновление.

10. Django-storages

Описание:

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

Например, пользователь может отправить нам много существенных данных, таких как фотографии, фильмы или даже резервные копии. Чтобы сделать эти данные доступными для него, не замедляя работу приложения, рекомендуется использовать облачные решения для хранения данных, такие как Google Cloud.

Чем полезен этот пакет:

  • Использование практически любого удаленного хранилища в качестве хранилища файлов фреймворка по умолчанию.

Особенности:

  • Позволяет использовать s3 или Google storage в качестве хранилища файлов по умолчанию.

Дополнительно: что такое Django Allauth?

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

Django-allauth

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

Почему мы включили его сюда:

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

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

Вывод

Python стал важным языком программирования для проектов веб-разработки по многим причинам. Одной из них является богатая экосистема библиотек, фреймворков и пакетов, помогающих разработчикам ускорить процесс создания приложений, лучше управлять ими и сосредоточиться на самом важном (например, архитектуре приложений или переводе бизнес-логики).

Мы надеемся, что этот список пакетов поможет вам, когда вы будете создавать свое следующее веб-приложение с использованием Python и Django. Если вы хотите узнать больше о пакетах Django, загляните на этот полезный сайт: https://djangopackages.org/.

Кроме того, не забудьте просмотреть и другие статьи на нашем сайте: в них вы найдете еще больше полезных советов по созданию приложений на Django!