天天看點

Django架構設計建立 Web 應用程式的兩種模式:MTV和MVC

一、MTV架構

MTV(Model Templates Views):

(1)M : model 資料模型,例如 orm中的模型類。

(2)T: templates 模闆: 例如 html頁面。

(3)V: view 視圖: 使用函數 例如: CBV 、FBV。

Model(模型) --  Templates(模版) --Views(視圖)
           

Django是MTV架構。

Django架構設計建立 Web 應用程式的兩種模式:MTV和MVC

二、MVC架構:

MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設計建立 Web 應用程式的模式:

  • Model(模型)表示應用程式核心(比如資料庫記錄清單(orm))。
  • View(視圖)顯示資料(資料庫記錄)。---->對應MTV中的 T
  • Controller(控制器)處理輸入(寫入資料庫記錄)。—>對應MTV中的 V

MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。

  • Model(模型)是應用程式中用于處理應用程式資料邏輯的部分。

通常模型對象負責在資料庫中存取資料。

  • View(視圖)是應用程式中處理資料顯示的部分。

通常視圖是依據模型資料建立的(前端網頁)。

  • Controller(控制器)是應用程式中處理使用者互動的部分。

通常控制器負責從視圖讀取資料,控制使用者輸入,并向模型發送資料(映射,模式渲染等)。

三、Django處理順序

  1. wsgi

    socket請求處理

  2. 控制器(django架構本身)

    控制使用者輸入,url比對,通過映射清單将一個請求發送到一個合适的視圖;

  3. views --Views

    python程式,向模型和模闆發送(或擷取)資料;

  4. 模型綁定 --Model

    資料庫存取資料

  5. 模闆引擎 --Templates

    用于将内容與展現分離,描述了資料如何展現(如網頁模闆);

  6. 模式渲染 --Views

    将模闆和資料整合,形成最終網頁;

  7. 控制器(django架構本身)

    傳回使用者展示。

    Django架構設計建立 Web 應用程式的兩種模式:MTV和MVC

​四、差別

MVC即模型-視圖-控制器模式,就是為那些需要為同樣的資料提供多個視圖的應用程式而設計的。它很好地實作了資料層與表示層的分離,特别适用于開發與使用者圖形界面有關的應用程式。控制器用來處理使用者指令以及程式事件;模型維護資料并提供資料通路方法;視圖用于資料的顯示。

MTV即模型-模版-視圖模式,其标準名稱是有争議的。在MVC的解釋中,視圖描述了展現給使用者的資料,是指所看到的資料,而不是如何看見它。在python中視圖是指對某一特定URL的回調函數,因為回調函數描述了所要展現的資料。模版用于将内容與展現分離。在django中,視圖描述了要展現的資料,而視圖一般轉交給模版。模版描述了資料如何展現。控制器則是指django架構本身,通過URL配置,系統将一個請求發送到一個合适的視圖。

Django中的MTV 是根據MVC模式演變過來的。

使用MVC 或MTV 模式的好處,解耦合。

如果想要和我交流,就關注我的微信公衆号:梓棟Coder(id:cyttlian)

繼續閱讀