Django описують як «веб-фреймворк для перфекціоністів з дедлайнами». Його створили, щоб переходити від прототипів до готових сервісів якомога швидше.
Фреймворк допоможе розробити CRUD додаток під ключ. З Django не доведеться винаходити велосипед. Він працює з коробки і дозволить зосередитися на бізнес-логіці і продуктах для звичайних людей.
Плюси Джанго
Принцип «Все включено» («Batteries included»)
Фраза «все включено» означає, що більшість інструментів для створення програми – частина фреймворка, а не поставляються у вигляді окремих бібліотек.
Django містить величезну кількість функціональності для вирішення більшості завдань веб-розробки. Ось деякі з високорівневих можливостей Django, які вам доведеться шукати окремо, якщо ви віддасте перевагу мікро-фреймворку:
- ORM
- Міграції бази даних
- Аутентифікація користувача
- Панель адміністратора
- Форми
Стандартизована структура
Django як фреймворк задає структуру проекту. Вона допомагає розробникам розуміти, де і як додавати нову функціональність.
Завдяки однакової для всіх проектів структурі набагато простіше знайти вже готові рішення або отримати допомогу від спільноти. Величезна кількість захоплених розробників допоможе впоратися з будь-яким завданням набагато швидше.
Додатки Django
Додатки в Django дозволяють розділити проект на декілька частин. Додатки встановлюються шляхом додавання в settings.INSTALLED_APPS. Цей підхід дозволяє легко інтегрувати готові рішення.
Сотні універсальних модулів і додатків дуже сильно прискорять розробку. Погляньте на їх список на сайті djangopackages.org.
Безпечний за замовчуванням
Django безпечний з коробки і включає механізми запобігання поширених атак на зразок SQL-ін’єкцій (XSS) і підробки міжсайтових запитів (CSRF). Детальніше про це можна почитати в офіційному керівництві з безпеки.
REST Framework для створення API
Django REST Framework, який часто скорочують до «DRF», є бібліотекою для побудови API. Він має модульну архітектуру, що настроюється, яка добре працює для створення як простих, так і складних API.
У DRF політики аутентифікації і дозволів доступні з коробки. Він поставляється з базовими класами для CRUD операцій і вбудованою утилітою для тестування розробляється API.
GraphQL фреймворк для створення API
Великі REST API часто вимагають великої кількості запитів для отримання всіх необхідних даних. GraphQL – це мова запитів, яка дозволяє обмінюватися пов’язаними даними набагато простіше. Детальніше почитати про основні концепції GraphQL можна в офіційній документації.
Graphene-Django дозволить легко додати відповідну функціональність в ваш проект. Моделі, форми, аутентифікація, політики дозволів і інші функціональні можливості Django можна використовувати для створення GraphQL API. Бібліотека так само поставляється з утилітою для тестування результату.
Недоліки Джанго
Django ORM
Django ORM сьогодні значно поступається останній SQLAlchemy.
Django ORM заснований на шаблоні Active Record, який гірше, ніж шаблон Unit of Work, який використовується в SQLAlchemy. На практиці це виражається в тому, що в Django моделі можуть «зберігати» себе за бажанням, а транзакції відключені за замовчуванням. Детальніше про це можна почитати в статті «Речі, які мені не подобаються в Django».
Django розвивається повільно
Django є великим і монолітним фреймворком. Це дозволяє спільноті розробляти сотні універсальних модулів і додатків, але знижує швидкість розробки самого Django. Крім того, фреймворк повинен підтримувати зворотну сумісність, тому він розвивається відносно повільно.
У підсумку: чи повинен я вибрати Django?
Хоча Django ORM не такий гнучкий, як SQLAlchemy, а велика екосистема багаторазово використовуваних модулів і додатків уповільнює розвиток інфраструктури, очевидно, Django повинен бути першим кандидатом на роль фреймворка для пітоніста.
Альтернативні легкі фреймворки типу Flask, хоча і дозволяють бути вільніше Django в екосистемі і конфігурації, можуть зажадати зайвого часу на пошук/створення додаткових бібліотек і функціональних можливостей в довгостроковій перспективі.
Стабільність Django і спільнота навколо нього виросли до неймовірних розмірів з моменту першого релізу. Офіційна документація та навчальні посібники з фреймворку є одними з кращих у своєму роді. А з кожною новою версією Django продовжує обростати можливостями.
Джерело: habr.com