Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

Почему вам стоит выбрать фреймворк Django для своего следующего проекта

Senior Python Developer рассказывает про возможности Django, а также советует, в каких проектах стоит применять этот фреймворк.

16К открытий16К показов

Django (Джанго) — свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC. Проект поддерживается организацией Django Software Foundation.

Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий фреймворка от некоторых других (например, Ruby on Rails). Один из основных принципов фреймворка — DRY (англ. Don’t repeat yourself)

Веб-фреймворк Django используется в сайтах Instagram, Disqus, Mozilla, The Washington Times, Pinterest, YouTube, Google и др.

Архитектура Django похожа на «Модель-Представление-Контроллер» (MVC). Контроллер классической модели MVC примерно соответствует уровню, который в Django называется Представление (англ. View), а презентационная логика Представления реализуется в Django уровнем Шаблонов (англ. Template). Из-за этого уровневую архитектуру Django часто называют «Модель-Шаблон-Представление» (MTV).

Основные возможности Django

  • ORM, API доступа к БД с поддержкой транзакций;
  • встроенный интерфейс администратора с уже имеющимися переводами на многие языки;
  • диспетчер URL на основе регулярных выражений;
  • расширяемая система шаблонов с тегами и наследованием;
  • система кэширования;
  • интернационализация;
  • подключаемая архитектура приложений, которые можно устанавливать на любые Django-сайты;
  • generic views — шаблоны функций контроллеров;
  • авторизация и аутентификация, подключение внешних модулей аутентификации: LDAP, OpenID и проч.;
  • система фильтров (middleware) для построения дополнительных обработчиков запросов, как, например, включенные в дистрибутив фильтры для кэширования, сжатия, нормализации URL и поддержки анонимных сессий;
  • библиотека для работы с формами (наследование, построение форм по существующей модели БД);
  • встроенная автоматическая документация по тегам шаблонов и моделям данных, доступная через административное приложение.

Django Rest Framework для создания API

Django Rest Framework (DRF) — это библиотека, которая работает со стандартными моделями Django для создания гибкого и мощного API для проекта. Эта статья поможет понять структуру DRF и дать вводные данные для начала его использования

API DRF состоит из трёх слоев:

  • Сериализатор преобразует информацию, хранящуюся в базе данных и определенную с помощью моделей Django, в формат, который легко и эффективно передается через API.
  • Вид (ViewSet) определяет функции (чтение, создание, обновление, удаление), которые будут доступны через API.
  • Маршрутизатор определяет URL-адреса, которые будут предоставлять доступ к каждому виду.

Когда не стоит использовать Django

  • Для очень-очень больших приложений, т.к. для некоторого функционала специально подбирается язык и технология, плюс Django по архитектуре ближе к монолиту, чем к микросервисам.
  • Если необходимо написать простейшее приложение, в котором не требуется работать с базой данных, выполнять операции с файлами или делать что-либо хоть немного сложное. Для таких ситуаций лучше подойдут микрофреймворки.
  • Вы хотите сами написать все с нуля и знаете, что делаете.
  • Вы или ваши коллеги совершенно не знакомы с Django/Python и у вас нет времени и ресурсов на наработку необходимых навыков.

Если все вышесказанное – не про ваш проект, то, вполне вероятно, Django вам подойдет.

Из личного опыта: идеальное применение Djnago для бэкенд разработки — написание бэкенда на хакатоне. Очень много встроенных фич и расширений, максимально удобная и быстрая разработка по сравнению с другими языками и фреймворками. Как мы знаем, на хакатоне время очень ограниченно.

Django и DRF. Полезные ссылки для изучения

А вы использовали Django в своих проектах?

Следите за новыми постами
Следите за новыми постами по любимым темам
16К открытий16К показов