Прежде чем мы изучим Django, давайте разберемся:
Что такое веб-фреймворк?
Веб-фреймворк — это библиотека кода, которая помогает вам создавать гибкие, масштабируемые и поддерживаемые; динамический сайт, веб-приложение и веб-сервисы. Различные веб-фреймворки — это Zend для PHP, Ruby on Rails для Ruby и т. Д.
Что такое Джанго?
Django — это инфраструктура веб-разработки для Python, которая предлагает стандартный метод для быстрой и эффективной разработки веб-сайтов. Он помогает вам создавать и поддерживать качественные веб-приложения. Это позволяет сделать процесс разработки гладким и экономящим время.
Это веб-фреймворк высокого уровня, который позволяет выполнять быструю разработку. Основная цель этого веб-фреймворка — создание сложных веб-сайтов, управляемых базой данных.
В этом уроке вы узнаете
- Что такое веб-фреймворк?
- Что такое Джанго?
- Почему Джанго? Ключевые преимущества
- История Джанго
- Особенности Джанго
- Характеристики Джанго
- Джанго Архитектура
- Компоненты Джанго
- Известные компании, использующие Django
- Недостатки использования Django
Почему Джанго? Ключевые преимущества
Вот основные причины использования Django:
- Django легко настроить и запустить. Он предлагает множество вариантов, чтобы начать
- Предоставляет готовый пользовательский интерфейс для административной деятельности.
- Это позволяет многоязычные веб-сайты с помощью встроенной системы интернационализации
- Помогает быстро удовлетворить огромные потребности в трафике
- Django используется для создания всех типов систем управления контентом, социальных сетей, а также научных вычислительных платформ.
- Django поможет вам обеспечить комплексное тестирование приложений
- Помогает вам документировать ваш API с выводом HTML
- REST Framework имеет богатую поддержку нескольких протоколов аутентификации
- Политики разрешений и регулирования
- Он широко используется для ограничения скорости запросов API от одного пользователя.
История Джанго
- Проект был начат Адяном Головаты и Саймоном Виллисоном в качестве внутреннего проекта в газете Lawrence Journal-World в 2003 году.
- Он был выпущен в июле 2005 года как «Django», названный в честь джазового гитариста Django Reinhard
- В июне 2008 года было объявлено, что Django Software Foundation (DSF) будет поддерживать Django.
- Версия Django 1.1 была выпущена 29 июля 2009 года с такими функциями, как Aggregates, тесты на основе транзакций.
- Версия Django 1.2 была выпущена 17 мая 2010 года. В этой версии сделано обновление, включающее несколько баз данных, реализацию почтового сервера и улучшения для сеансов и файлов cookie.
- 23 марта 2011 года, версия 1.3 с такими функциями, как представления на основе классов, были представлены статические файлы
- 23 марта 2012 года была запущена версия 1.4 с новыми функциями, такими как часовые пояса и тестирование в браузере
- 26 февраля 2013 г. версия 1.5 поставляется с поддержкой Python 3, настраиваемыми функциями модели пользователя.
- 6 ноября 2013 года версия 1.6 поставляется с управлением транзакциями БД и функциями пула соединений.
- 2 сентября 2014 г. в версии 1.7 появились новые функции, такие как загрузка приложений, миграция и настройка
- 1 апреля 2015 года была обеспечена собственная поддержка нескольких шаблонизаторов.
- 1 декабря 2015 года в версии 1.9 была введена функция автоматической проверки пароля.
- 1 августа 2016 года в версии 1.10 запущен полнотекстовый поиск для PostgreSQL.
- 4 апреля 2017 года версия 1.11 станет последней версией, поддерживающей Python 2.7
- 2 декабря 2017 года версия 2.0 становится первой релизной версией Python 3.
- 1 августа 2018 года версия 2.1 поставляется с функцией поддержки разрешений «Представление» модели.
Особенности Джанго
- Помогает вам определить шаблоны для URL в вашем приложении
- Простая, но мощная система URL
- Встроенная система аутентификации
- База данных объектно-ориентированного языка программирования, которая предлагает лучшее в своем классе хранение и поиск данных
- Функция автоматического интерфейса администратора позволяет добавлять, редактировать и удалять элементы. Вы можете настроить панель администратора в соответствии с вашими потребностями.
- Инфраструктура кэширования поставляется с несколькими механизмами кэширования.
Характеристики Джанго
- Loosely Coupled — Django помогает вам сделать каждый элемент своего стека независимым от других.
- Меньше кода — обеспечивает эффективную разработку
- Не повторяется — все должно развиваться в одном месте, а не повторяться
- Быстрая разработка — Django предлагает быструю и надежную разработку приложений.
- Последовательный дизайн — Django поддерживает чистый дизайн и позволяет легко следовать лучшим практикам веб-разработки.
Архитектура Джанго: MVC и MVT
MVC Pattern:
Говоря о приложениях, которые предоставляют пользовательский интерфейс (веб или настольный компьютер), мы обычно говорим об архитектуре MVC. Шаблон MVC основан на модели, представлении и контроллере.
Модель определяет структуру данных и принимает к уходу за запросы к базе данных.
В View определяет , что должны быть представлены данные , и возвращает ответ HTTP.
Контроллер является частью приложения , которое обрабатывает взаимодействие с пользователем.
Шаблон Django MVC-MVT
Модель-представление-шаблон (MVT) — это другая концепция по сравнению с MVC. Основное различие между этими двумя архитектурными шаблонами заключается в том, что Django сам управляет частью Controller (программный код, который контролирует взаимодействие между моделью и представлением). Шаблон представляет собой файл HTML, который смешан с файлом языка шаблонов Django, который также называется DTL.
Нижеприведенная диаграмма показывает, как все компоненты шаблона MVT взаимодействуют друг с другом, чтобы служить специфическим для пользовательского запроса.
Как видно на диаграмме выше, пользователь запрашивает ресурс у Django. Django действует как контроллер и проверяет доступный ресурс в URL.
Если URL-карты отображаются, вызывается представление, которое взаимодействует с моделью и шаблоном. Затем Django отвечает пользователю и отправляет шаблон в качестве ответа.
Компоненты Джанго
Форма:
Django имеет мощную библиотеку форм, которая обрабатывает рендеринг форм в виде HTML. Библиотека помогает проверять представленные данные и преобразовывать их в типы Python.
Аутентификация:
Он обрабатывает учетные записи пользователей, группы, сеансы пользователей на основе файлов cookie и т. Д.
Администратор:
Он читает метаданные в ваших моделях, чтобы обеспечить надежный интерфейс, который можно использовать для управления контентом на вашем сайте.
Интернационализация:
Django обеспечивает поддержку перевода текста на различные языки, форматирование дат, времени, чисел и часовых поясов в зависимости от региона.
Безопасность:
Django обеспечивает защиту от следующих атак:
- Подделка межсайтовых запросов (CSRF)
- Межсайтовый скриптинг
- SQL-инъекция
- ClickJacking
- Удаленное выполнение кода
Известные компании, использующие Django
Вот компании, которые используют Django:
- BitBucket
- DISQUS
- НАСА
- PBS (Служба общественного вещания)
- Mozilla
- The Washington Post
- Нью-Йорк Таймс
- LA Times
- The Guardian National Geographic
- Канал Дискавери
Недостатки использования Django
- Процесс не может обрабатывать несколько запросов одновременно.
- Джанго — очень монолитный инструмент.
- Компоненты развертываются вместе, что может создать путаницу.
- Знание полной системы, необходимой для работы на Джанго
- Делает компоненты веб-приложений тесно связанными
- Вы должны сделать длительное программирование для второстепенных задач.
Резюме
- Django — это инфраструктура веб-разработки для Python, которая предлагает стандартный метод для быстрой и эффективной разработки веб-сайтов.
- Django начал свою работу в 2003 году с помощью Adian Holovaty и Simon Willison в качестве внутреннего проекта в газете Lawrence Journal-World.
- Django поможет вам документировать ваш API с выводом HTML
- Django позволяет настроить панель администратора в соответствии с вашими потребностями.
- Django помогает вам сделать каждый элемент своего стека независимым от других.
- Основное различие между архитектурными шаблонами MVC и MVT заключается в том, что Django сам управляет частью контроллера.
- Основные компоненты архитектуры Django:
Форма, Аутентификация, Администратор, Интернационализация, Безопасность
- Bitbucket, DISQUS, Nasa, Pinterest, Instagram, Mozilla и др. Используют Django
- Самым большим недостатком Django является то, что он не может обрабатывать несколько запросов одновременно.