出自:
在正式開始coding之前,我覺得有必要**下django的mtv模式,理論和實踐相結合,才能更好的掌握一門技術。
首先說說web伺服器開發領域裡著名的mvc模式,所謂mvc就是把web應用分為模型(m),控制器(c)和檢視(v)三層,他們之間以一種外掛程式式的、松耦合的方式連線在一起,模型負責業務物件與資料庫的對映(orm),檢視負責與使用者的互動(頁面),控制器接受使用者的輸入呼叫模型和檢視完成使用者的請求,其示意圖如下所示:
django的mtv模式本質上和mvc是一樣的,也是為了各元件間保持松耦合關係,只是定義上有些許不同,django的mtv分別是值:
m 代表模型(model):負責業務物件和資料庫的關係對映(orm)。
t 代表模板 (template):負責如何把頁面展示給使用者(html)。
v 代表檢視(view):負責業務邏輯,並在適當時候呼叫model和template。
除了以上三層之外,還需要乙個url分發器,它的作用是將乙個個url的頁面請求分發給不同的view處理,view再呼叫相應的model和template,mtv的響應模式如下所示:
1,web伺服器(中介軟體)收到乙個http請求
2,django在urlconf裡查詢對應的檢視(view)函式來處理http請求
3,檢視函式呼叫相應的資料模型來訪問資料、呼叫相應的模板向使用者展示頁面
4,檢視函式處理結束後返回乙個http的響應給web伺服器
5,web伺服器將響應傳送給客戶端
這種設計模式關鍵的優勢在於各種元件都是松耦合的。這樣,每個由 django驅動的web應用都有著明確的目的,並且可獨立更改而不影響到其它的部分。
比如,開發者更改乙個應用程式中的 url 而不用影響到這個程式底層的實現。設計師可以改變 html頁面的樣式而不用接觸python**。
資料庫管理員可以重新命名資料表並且只需更改模型,無需從一大堆檔案中進行查詢和替換。
落到實處,django的mtv模式相對應的python檔案如下:
Django MTV 開發模式
在鑽研更多 之前,讓我們先花點時間考慮下 django 資料驅動 web 應用的總體設計。我們在前面章節提到過,django 的設計鼓勵松耦合及對應用程式中不同部分的嚴格分割。遵循這個理念的話,要想修改應用的某部分而不影響其它部分就比較容易了。在檢視函式中,我們已經討論了通過模板系統把業務邏輯和表現...
Django MTV模式學習
出自 在正式開始coding之前,我覺得有必要 下django的mtv模式,理論和實踐相結合,才能更好的掌握一門技術。首先說說web伺服器開發領域裡著名的mvc模式,所謂mvc就是把web應用分為模型 m 控制器 c 和檢視 v 三層,他們之間以一種外掛程式式的 松耦合的方式連線在一起,模型負責業務...
Django MTV和MVC的區別詳解
在上一節 django是什麼 中,我們對 django 的誕生以及 web 框架的概念有了基本的了解,本節我們介紹 django 的設計模式,也就是 mtv。在 web 開發領域還有另外乙個非常著名的設計模式 mvc,它和 mtv 又有什麼區別呢?這也是本節關注的重點內容。我們先對 mvc 設計模式...