深入淺析Django MTV模式

MVC模式

MVC, 全名Model View Controller, 是軟件工程中的一種軟件架構模式,把軟件系統分為三個基本部分:模型(Model), 視圖(View)和控制器(Controller), 具有耦合性低,重用性高、生命周期成本低等優點。

在這裡插入圖片描述

MVT模式

模型:數據存儲層,處理與數據相關的所有事務,例如如何存取、如何驗證有效性、包含哪些行為以及數據之間的關系等。負責業務對象與數據庫的對象(orm)。
模板:表現層,處理與表現相關的決定,例如如何在頁面或其他類型的文檔中進行顯示。
Django作為Web框架,需要一種很便利的方法動態的生成HTML網頁,因此有瞭模板這個概念。模板包含所需HTML的部分代碼以及一些特殊的語法,特殊語法用於描述如何將視圖傳遞的數據動態插入HTML網頁中。
Django可以配置一個或多個模板引擎(甚至是0個,如前後端分離,Django隻提供API接口,無需使用模板引擎),模板引擎有Django模板語言(DTL)和Jinja2。Django模板語言是Django內置的功能之一,Jinja2是當前Python流行的模板語言。
視圖:業務邏輯層,存取模型及調取恰當模板的相關邏輯,模型與模板的橋梁。主要負責處理用戶請求和生成相應的相應內容,然後在頁面或其他類型文檔中顯示。也可以理解為視圖是MVC架構裡面的C部分(控制器),主要處理功能和業務上的邏輯。我們習慣使用視圖函數處理HTTP請求,記載視圖裡定義def函數,這種方式成為FBV(Function Base Views)。

在這裡插入圖片描述

(引自:https://zhuanlan.zhihu.com/p/362268440)

Django框架的基礎就是MTV模式, 將開發任務分為三大部分:

  • Model:負責業務對象和數據庫的關系映射(ORM),與MVC模式中的Model是等同。
  • Template:負責如何把頁面展示給用戶(HTML),這部分類似與MVC中的視圖。
  • View:負責業務邏輯,並在適當時候調用Model和Template。跟MVC中的Controller等同。

在這裡插入圖片描述

首先,我們要知道:MVT是什麼?
昨天也提到瞭:
M全拼為Model,與MVC中的M功能相同,負責和數據庫交互,進行數據處理。
V全拼為View,與MVC中的C功能相同,接收請求,進行業務處理,返回應答。
T全拼為Template,與MVC中的V功能相同,負責封裝構造要返回的html。

MVT是一個前沿的軟件架構模式,它具有高效的ORM(Object Relation Mapping)數據操作,將程序中的對象【object】和數據庫中的表【relation】建立關聯關系,關系【mapping】的過程稱為ORM.

為什麼使用MVT結構?

1.實現高內聚低耦合易於開發
在實際開發過程中,需要根據不同的需求對原版本進行迭代,MVT把對數據庫操作,請求處理和頁面佈局進行瞭分離,方便瞭對代碼的更新,不需要牽一發而動全身,易於代碼的維護。
2.提高開發效率
做到瞭前後端的分離,易於代碼的整合.方便使用者分工合作。也提高瞭重用性,對於相似部分方便復用,提高瞭開發效率。
那麼,你是不是還記住瞭那句話“Django框架遵循MVC設計”?MVC是個什麼玩意兒?
M表示Model,主要用於對數據庫層的封裝;
V表示View,用於向用戶展示結果;
C表示Controller,是核心,用於處理請求、獲取數據、返回結果。

關於MVC,有3點需要註意:

1.大部分開發語言中都有MVC框架;
2.MVC框架的核心思想是:解耦;
3.能降低各功能模塊之間耦合性,方便變更,更容易重構代碼,最大程度實現代碼重用。

最後,Django架構模式:
MVT架構模式:在MVC基礎上,對控制器controller進行瞭封裝,增加瞭模塊功能【Templates】實現前端網頁【Html】
MVC架構模式:數據model–>視圖views–>數據交互–>服務器–>控制器controller–>相應函數的調用。

到此這篇關於Django MTV模式的文章就介紹到這瞭,更多相關Django MTV模式內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: