一、MTV
1小染、概述
本質上與MTV沒啥區(qū)別、也是各個組件之間保持松耦合關系,只是在定義上有些許的不同煮剧。
2巧颈、編程模式
Model (模型)
負責業(yè)務對象與數(shù)據(jù)庫對象(ORM)
Template (模板)
負責如何把頁面展示給用戶(html)
View(視圖)
負責業(yè)務邏輯并適當調用Model和Template
3闷祥、注意 Django有一個url分發(fā)器
Django有一個url分發(fā)器盛霎、它的作用是將一個一個URL的頁面請求分發(fā)給不同的View處理,View再調用響應的Model和Template伴逸。
4缠沈、圖解MTV
(1)Web服務器(中間件)收到一個http請求
(2)Django在URLconf里查找對應的視圖(View)函數(shù)來處理http請求
(3)視圖函數(shù)調用相應的數(shù)據(jù)模型來存取數(shù)據(jù)、調用相應的模板向用戶展示頁面
(4)視圖函數(shù)處理結束后返回一個http的響應給Web服務器
(5)Web服務器將響應發(fā)送給客戶端
這種設計模式關鍵的優(yōu)勢在于各種組件都是松耦合的错蝴。這樣洲愤,每個由 Django驅動的Web應用都有著明確的目的,并且可獨立更改而不影響到其它的部分顷锰。
比如柬赐,開發(fā)者更改一個應用程序中的 URL 而不用影響到這個程序底層的實現(xiàn)。設計師可以改變 HTML頁面的樣式而不用接觸Python代碼官紫。
數(shù)據(jù)庫管理員可以重新命名數(shù)據(jù)表并且只需更改模型肛宋,無需從一大堆文件中進行查找和替換。
落到實處束世,Django的MTV模式相對應的python文件如下:
視圖將數(shù)據(jù)傳給template經(jīng)過渲染之后酝陈,返回給視圖。在做出響應毁涉。