Учебники

61) Джанго Учебник

Прежде чем мы изучим Django, давайте разберемся:

Что такое веб-фреймворк?

Веб-фреймворк — это библиотека кода, которая помогает вам создавать гибкие, масштабируемые и поддерживаемые; динамический сайт, веб-приложение и веб-сервисы. Различные веб-фреймворки — это Zend для PHP, Ruby on Rails для Ruby и т. Д.

Что такое Джанго?

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

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

В этом уроке вы узнаете

Почему Джанго? Ключевые преимущества

Вот основные причины использования 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 взаимодействуют друг с другом, чтобы служить специфическим для пользовательского запроса.

MVT Архитектура

Как видно на диаграмме выше, пользователь запрашивает ресурс у Django. Django действует как контроллер и проверяет доступный ресурс в URL.

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

Компоненты Джанго

Форма:

Django имеет мощную библиотеку форм, которая обрабатывает рендеринг форм в виде HTML. Библиотека помогает проверять представленные данные и преобразовывать их в типы Python.

Аутентификация:

Он обрабатывает учетные записи пользователей, группы, сеансы пользователей на основе файлов cookie и т. Д.

Администратор:

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

Интернационализация:

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

Безопасность:

Django обеспечивает защиту от следующих атак:

  • Подделка межсайтовых запросов (CSRF)
  • Межсайтовый скриптинг
  • SQL-инъекция
  • ClickJacking
  • Удаленное выполнение кода

Известные компании, использующие Django

Вот компании, которые используют Django:

  • BitBucket
  • DISQUS
  • НАСА
  • PBS (Служба общественного вещания)
  • Pinterest
  • Instagram
  • 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 является то, что он не может обрабатывать несколько запросов одновременно.