官术网_书友最值得收藏!

2.2 MTV框架

前面的Web開發框架非常簡單,完全符合初級程序員想到哪做到哪的開發風格。這種開發風格在個人開發或者微型團隊開發中不會出現任何問題,有時還能夠提高溝通效率,減少工作量。但是,當團隊規模擴大、業務場景變得越來越復雜的情況下,這種開發模式就會給開發人員和技術管理人員帶來諸多麻煩,例如,有時某一個開發人員辛辛苦苦地完成一個方法后卻發現其他人在很早之前已經完成了;有時系統里存在一個非常高效的方法卻沒有人知道存放位置,最終的代碼變得雜亂無章且難以管理。為了解決這些問題,軟件開發中逐漸引入了開發框架的概念,開發框架通常針對某一領域使得代碼更容易地被重用。經常被提及的設計模式有微軟的ASP.NET MVC框架、Java的Spring框架等。

Django框架的基礎是MTV模式,它將開發任務分為三大部分:Model、Template、View。很多人可能對MTV不太了解,但是,如果說到一個和它相似的開發模式你一定了解,或者說很熟悉,那就是MVC開發模式。MVC模式就是把Web應用分為Model(模型)、View(視圖)、Controller(控制器)三層。

Model:負責業務對象與數據庫的關系映射(一般基于ORM(Object Relational Mapping,對象關系映射)框架)。

View:負責頁面展示,也就是與用戶直接交互的網頁部分。

Controller:接收并處理用戶的請求,通常需要調用Model和View來完成用戶請求。

MVC模式三者之間的關系如下圖所示。

MTV與MVC模式非常相似,也將開發工作分為三層:

M代表模型(Model):負責業務對象和數據庫的關系映射(ORM),這與MVC模式中的模型是一樣的。

T代表模板(Template):負責把頁面展示給用戶(html),這部分類似于MVC中的視圖。

V代表視圖(View):負責業務邏輯,并在適當時候調用Model和Template,這里就不是MVC的View了,反而更像是Controller。

Django的響應模式如下圖所示。

響應順序如下:

(1)Django中間件接收到一個用戶請求。

(2)Django通過URLconf查找對應的視圖,然后進行URL路由分發。

(3)視圖接收請求,查詢對應的模型,調用模板生成HTML文檔。

(4)視圖返回處理后的HTML文檔。

(5)Web服務器將響應內容發送給客戶端。

主站蜘蛛池模板: 汪清县| 阿拉善左旗| 德惠市| 临泽县| 灵丘县| 石楼县| 泰来县| 平湖市| 仙游县| 克东县| 乌审旗| 都昌县| 商河县| 岱山县| 肃北| 海南省| 谷城县| 保靖县| 黄浦区| 文安县| 日喀则市| 仁怀市| 松江区| 辰溪县| 张掖市| 丰原市| 崇义县| 蒲江县| 南宫市| 德阳市| 旬阳县| 本溪市| 左云县| 新建县| 沙雅县| 海安县| 酒泉市| 民乐县| 格尔木市| 泗洪县| 秭归县|