Django 5 для начинающих

Прогресс по курсу:  9/1004

2.2 Основные принципы MVC
2 из 3 шагов пройдено
0 из 3 баллов  получено

В этом шаге мы узнаем об архитектуре Model View Controller (MVC) и о том, как она используется в веб-разработке. Мы также узнаем о его использовании конкретно в Django.

Веб-сайты уже давно претерпели значительную эволюцию от простых HTML-страниц до сложных конструкций с использованием фреймворков. Чтобы справиться со сложностью и повысить возможность повторного использования кода, при реализации этих проектов использовались различные архитектурные шаблоны, которые упрощали работу разработчиков, и из всех шаблонов MVC стал наиболее популярным в использовании.

Теперь, чтобы определить его формально, архитектура MVCэто организованный шаблон проектирования архитектуры программного обеспечения, который используется для разделения функций приложения и логики программы на различные компоненты. Первоначально эта архитектура использовалась для разработки настольных пользовательских интерфейсов (GUI), но сегодня она широко используется в разработке веб-приложений. В настоящее время эту концепцию можно легко найти во многих средах веб-разработки, таких как Ruby on Rails (Ruby), Zend (PHP), Express (JS), Angular (JS), Django (Python) и т. д.

Как следует из названия, архитектура MVC состоит из трех компонентов: Модель, Представление и Контроллер.
Давайте посмотрим, что они делают:

Модель

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

Вид

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

Контроллер

  • Именно этот компонент отвечает за обработку взаимодействия с пользователем, что означает, что именно он получает входные данные и запросы (GET, POST и т. д.), данные пользователем.
  • Он обрабатывает все коммуникации между моделью и представлением.
  • Он отправляет инструкции модели для обновления или извлечения и представлению для обновления представления.

Теперь, чтобы лучше понять, давайте посмотрим на фактическую реализацию MVC и то, как модель, представление и контроллер взаимодействуют через блок-схему.

  • Все, что пользователь видит на экране, обрабатывается VIEW. Обычно состоит из HTML и CSS.
  • Когда пользователь дает ввод или любой запрос, проверка выполняется CONTROLLER, и он отправляет дальнейшие инструкции в MODEL.
  • MODEL обрабатывает все операции с данными и возвращает данные CONTROLLER или в случае обновления информирует VIEW обо всех изменениях.
  • VIEW и CONTROLLER вместе обрабатывают взаимодействие и запросы пользователя.

Работа модели MVC может немного отличаться в разных средах.

Теперь, несмотря на то, что концепция MVC широко используется в различных фреймворках, может быть сложно понять, как она работает в таких фреймворках, как Django. Давайте посмотрим, какие отличия есть в реализации Django MVC.

Django MVC: MTV

Теперь, для тех, кто не знаком с этим, Django — это высокоуровневый веб-фреймворк Python, который широко используется в настоящее время из-за его чистого дизайна и использует дизайн Model Template View, который похож на концепцию MVC.

Представление шаблона модели (MTV) немного отличается от MVC.

  • Компонент MODEL и его функция здесь остаются прежними.
  • Компонент TEMPLATE в целом управляет тем, как данные будут представлены пользователю.
  • Компонент VIEW здесь описывает, какие данные представлены, и не имеет значения, каким образом они представлены.
  • Часть контроллера, которая также обрабатывает URL-адреса, берется на себя самим фреймворком.
  • VIEW реализованы в виде функций обратного вызова, которые возвращают данные для определенного URL-адреса (файл views.py содержит все представления).
  • Используя VIEW, шаблон отображается, шаблоны в Django - это не что иное, как файлы HTML, смешанные с языком шаблонов Django (DTL). (Обычно отдельная папка шаблонов, содержащая все файлы HTML для обработки шаблонов)
  • Отдельный файл models.py содержит все модели.
  • MTV также называется MTV + Controller, но слово «контроллер» часто удаляется, потому что эта часть уже включена в сам Django.

  • Комментария
Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий

Пока курс очень нравится. Возможно потому что вы (создатели) первые на нашем пути, кто начинает объяснять взаимосвязь между всем тем, что мы учили до этого, и в голове наконец начинает складываться какая-то картина по поводу того, как это все должно работать и взаимодействовать)

 

 

Давайте посмотрим, какие все отличия есть в реализации Django MVC.

Тут, наверное, все лишнее.

@Георгий_Тимофеев, спасибо, исправил.

Здравствуйте, спасибо за обновление курса!
Поправьте, пожалуйста, как на слайде, чтобы не возникало путаницы, т.к. тема не простая.

@ilya_kutaev, спасибо, исправил.

Пока больше вопросов, чем ответов, не понятно, это особенность повествования такая, или я рановато начал изучать фреймворк (хотя прохожу в кач-ве основного курса по бекенд разработке - курс от одной, наверное, из самых известных в РФ компаний, и как раз следующий спринт там Django) ...

Пока, по ощущениям, не хватает какой-то плавной подводки к темам, информация (по-моему, не факт, что так на самом деле, может у меня затупы) пока вбрасывается порционно, вероятнее всего эта информация фундаментальная и довольно важная, но не совсем понятно с чем ее связать, возможно (и вероятнее всего), что на практике уже встанет все на свои места, но пока идет туговато)

@Нарбеков_Марсель, да, на практических примерах станет более понятно.

@Дмитрий_Селезнев, Понял, спасибо!