MVC和MTV架構
MVC 模型
MVC 模式(Model–view–controller)是軟件工程中的一種軟件架構模式,把軟件系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller)
MVC 以一種插件式的、松耦合的方式連接在一起。
- 模型(M)- 編寫程序應有的功能,負責業務對象與數據- 庫的映射(ORM)。
- 視圖(V)- 圖形界面,負責與用戶的交互(頁面)。
- 控制器(C)- 負責轉發請求,對請求進行處理。
簡易圖:
用戶操作流程圖:
MTV 模型
Django 的 MTV 模式本質上和 MVC 是一樣的,也是爲了各組件間保持松耦合關係,只是定義上有些許不同,Django 的 MTV 分別是指:
- M 表示模型(Model):編寫程序應有的功能,負責業務對象與數據庫的映射(ORM)。
- T 表示模板 (Template):負責如何把頁面(html)展示給用戶。
- V 表示視圖(View):負責業務邏輯,並在適當時候調用 Model和 Template
除了以上三層之外,還需要一個 URL 分發器,它的作用是將一個個 URL 的頁面請求分發給不同的 View 處理,View 再調用相應的 Model 和 Template,MTV 的響應模式如下所示:
簡易圖:
用戶操作流程圖:
解析:
用戶通過瀏覽器向我們的服務器發起一個請求(request),這個請求會去訪問視圖函數:
- a.如果不涉及到數據調用,那麼這個時候視圖函數直接返回一個模板也就是一個網頁給用戶
- b.如果涉及到數據調用,那麼視圖函數調用模型,模型去數據庫查找數據,然後逐級返回
視圖函數把返回的數據填充到模板中空格中,最後返回網頁給用戶