Django MTV和MVC的區別詳解

2022-09-25 23:27:08 字數 1028 閱讀 5986

在上一節《django是什麼》中,我們對 django 的誕生以及 web 框架的概念有了基本的了解,本節我們介紹 django 的設計模式,也就是 mtv。

在 web 開發領域還有另外乙個非常著名的設計模式——mvc,它和 mtv 又有什麼區別呢?這也是本節關注的重點內容。

我們先對 mvc 設計模式進行介紹,它是 web 設計模式的經典之作,mtv 模式也是在它的基礎上衍生而來。

mvc 是 model-view-controller 的縮寫,其中每個單詞都有其不同的含義:

圖1:mvc 設計模式示意圖

mvc 設計模式的請求與響應過程描述如下:

mvc 的 3 層之間緊密相連,但又相互獨立程式設計客棧,每一層的修改都不會影響其它層,每一層都提供www.cppcns.com了各自獨立的介面供其它層呼叫,mvc 的設計模式降低了**之間的耦合性(即關聯性),增加了模組的可重用性,這就是 mvc 的設計模式。

那麼 django 的 mtv 又是怎麼回事呢?下面講解 django 的設計模式。

django 借鑑了經典的 mvc 模式,它也將互動的過程分為了 3 個層次,也就是 mtv 設計模式;

圖2:django mtv 設計模式示意圖

我們按照 mvc 的設計模式對 mtv 進行分析,mtv 設計模式中,用 view 層取代了 controller 層的位置,用 template 層取代了原來 view 層的位置。

初次接觸 django 的設計模式的人,可能會對 template 層產生疑問,其實 template 英文的含義就是「模板」的意思,你可以簡單理解成,它是乙個 html 頁面 ,html 頁面的渲染在檢視層完成。

同樣我們也對 mtv 設計模式的請求與響應過程進行描述:

通過以上兩種設計模式的比較, 我們可以得出 mtv 是 mvc 的一種細化,將原來 mvc 中的 v 層拿出來進行分離,檢視的顯示與如何顯示交給 template 層,而 view 層更專注於實現業務邏輯。其實在 django 是有 controller 層的,只不過它由框架本身來實現,所以我們不用關心它。django 更關注於m、t 和 v。

MVP和MVC的區別

1 mvc model controller view 把業務剝離到controller中,讓view專注於現實ui。但是view和model並沒有解耦合,controller和view有可能由同乙個物件承擔,比如android的activity.2.mvp model view presenter...

MVP MVVM和MVC的理解

mvp 是指 model 模型 view 檢視 presenter 表示器 是 mvc 模式的一種衍生模式,專注於改進表示邏輯。與 mvc 不同,來自 view 的呼叫將委託給 presenter 表示器 表示器通過介面與 view 對話。mvp 中的 view 是被動的,裡面包含一點 邏輯或者零邏...

MVC和MVVM的區別

mvc和mvvm的區別 現在是市面上使用mvvm模型越來越多,相關的前端框架的選擇也相應增多。那麼什麼是mvvm模型,它和傳統mvc模型有什麼區別,接下來我們來總結 一下。mvvm即model view viewmodel的簡寫。即模型 檢視 檢視模型。模型 model 指的是後端傳遞的資料。檢視 ...