天天看點

Django MTV模式MVC模式MVT模式

MVC模式

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

Django MTV模式MVC模式MVT模式

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)。

Django MTV模式MVC模式MVT模式

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

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

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

    ————————————————

    版權聲明:本文為CSDN部落客「Allen_by」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

    原文連結:https://blog.csdn.net/boyun58/article/details/88878936

Django MTV模式MVC模式MVT模式

首先,我們要知道: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–>相應函數的調用。