一、MTV架構
MTV(Model Templates Views):
(1)M : model 資料模型,例如 orm中的模型類。
(2)T: templates 模闆: 例如 html頁面。
(3)V: view 視圖: 使用函數 例如: CBV 、FBV。
Model(模型) -- Templates(模版) --Views(視圖)
Django是MTV架構。
二、MVC架構:
MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計建立 Web 應用程式的模式:
- Model(模型)表示應用程式核心(比如資料庫記錄清單(orm))。
- View(視圖)顯示資料(資料庫記錄)。---->對應MTV中的 T
- Controller(控制器)處理輸入(寫入資料庫記錄)。—>對應MTV中的 V
MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。
- Model(模型)是應用程式中用于處理應用程式資料邏輯的部分。
通常模型對象負責在資料庫中存取資料。
- View(視圖)是應用程式中處理資料顯示的部分。
通常視圖是依據模型資料建立的(前端網頁)。
- Controller(控制器)是應用程式中處理使用者互動的部分。
通常控制器負責從視圖讀取資料,控制使用者輸入,并向模型發送資料(映射,模式渲染等)。
三、Django處理順序
-
wsgi
socket請求處理
-
控制器(django架構本身)
控制使用者輸入,url比對,通過映射清單将一個請求發送到一個合适的視圖;
-
views --Views
python程式,向模型和模闆發送(或擷取)資料;
-
模型綁定 --Model
資料庫存取資料
-
模闆引擎 --Templates
用于将内容與展現分離,描述了資料如何展現(如網頁模闆);
-
模式渲染 --Views
将模闆和資料整合,形成最終網頁;
-
控制器(django架構本身)
傳回使用者展示。
四、差別
MVC即模型-視圖-控制器模式,就是為那些需要為同樣的資料提供多個視圖的應用程式而設計的。它很好地實作了資料層與表示層的分離,特别适用于開發與使用者圖形界面有關的應用程式。控制器用來處理使用者指令以及程式事件;模型維護資料并提供資料通路方法;視圖用于資料的顯示。
MTV即模型-模版-視圖模式,其标準名稱是有争議的。在MVC的解釋中,視圖描述了展現給使用者的資料,是指所看到的資料,而不是如何看見它。在python中視圖是指對某一特定URL的回調函數,因為回調函數描述了所要展現的資料。模版用于将内容與展現分離。在django中,視圖描述了要展現的資料,而視圖一般轉交給模版。模版描述了資料如何展現。控制器則是指django架構本身,通過URL配置,系統将一個請求發送到一個合适的視圖。
Django中的MTV 是根據MVC模式演變過來的。
使用MVC 或MTV 模式的好處,解耦合。
如果想要和我交流,就關注我的微信公衆号:梓棟Coder(id:cyttlian)