django

10 пакетів Django, які потрібно знати

Hello, World, друзі! Ви збираєтесь почати проект на Django? Ймовірно, вам буде цікаво знати, чи є якісь корисні пакети, котрі могли б стати в нагоді при розробці. Я підготував список необхідних пакетів Django. Коротенькі описи та посилання на самі пакети допоможуть вам розпочати працювати з ними якомога швидше. Усі нижче згадані пакети підтримують Python 3 знаходяться у статусі стабільної версії.

Готові? Поїхали!

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/.

Залишити відповідь