Model View Controller — наиболее часто используемый шаблон проектирования. Разработчикам легко реализовать этот шаблон проектирования.
Ниже приведена базовая архитектура контроллера представления модели:
Давайте теперь посмотрим, как работает структура.
модель
Он состоит из чистой логики приложения, которая взаимодействует с базой данных. Он включает в себя всю информацию для представления данных конечному пользователю.
Посмотреть
Представление представляет файлы HTML, которые взаимодействуют с конечным пользователем. Он представляет данные модели для пользователя.
контроллер
Он действует как посредник между представлением и моделью. Он слушает события, вызванные представлением, и запрашивает модель на то же самое.
Код Python
Давайте рассмотрим базовый объект «Человек» и создадим шаблон проектирования MVC.
Model.py
import json class Person(object): def __init__(self, first_name = None, last_name = None): self.first_name = first_name self.last_name = last_name #returns Person name, ex: John Doe def name(self): return ("%s %s" % (self.first_name,self.last_name)) @classmethod #returns all people inside db.txt as list of Person objects def getAll(self): database = open('db.txt', 'r') result = [] json_list = json.loads(database.read()) for item in json_list: item = json.loads(item) person = Person(item['first_name'], item['last_name']) result.append(person) return result
Он вызывает метод, который выбирает все записи таблицы Person в базе данных. Записи представлены в формате JSON.
Посмотреть
Он отображает все записи, извлеченные в модели. Представление никогда не взаимодействует с моделью; Контроллер выполняет эту работу (общение с моделью и представлением).
from model import Person def showAllView(list): print 'In our db we have %i users. Here they are:' % len(list) for item in list: print item.name() def startView(): print 'MVC - the simplest example' print 'Do you want to see everyone in my db?[y/n]' def endView(): print 'Goodbye!'
контроллер
Контроллер взаимодействует с моделью через метод getAll (), который выбирает все записи, отображаемые для конечного пользователя.