首先從著名的MVC模式提及:
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,就是把Web應用分爲模型(M),視圖(V),控制器(C)三層,他們之間以一種插件式的,鬆耦合的方式鏈接在一塊兒,模型負責業務對象與數據庫的映射(ORM),試圖負責與用戶的交互(頁面),控制器接受用戶的輸入,調用模型和試圖完成用戶請求
Django的MTV模式本質上和MVC是同樣的,MTV分別代指:
M模型(Model):負責業務對象和數據庫的關係映射(ORM)
T模板(Template):負責如何把頁面展現給用戶(html)
V試圖(View):負責業務邏輯,並在適當的時候調用Model和Template
除了以上三層,還須要一個URL分發器,負責將一個個url的頁面請求發送給不一樣的view處理,View再調用相應的Model和Template,
這種設計模式關鍵的優點在於各類組件都是鬆耦合的。這樣,每一個由 Django驅動的Web應用都有着明確的目的,而且可獨立更改而不影響到其它的部分。
好比,開發者更改一個應用程序中的 URL 而不用影響到這個程序底層的實現。設計師能夠改變 HTML頁面的樣式而不用接觸Python代碼。
數據庫管理員能夠從新命名數據表而且只需更改模型,無需從一大堆文件中進行查找和替換。