比較 MVC 與 Django 的 MTV

Jo-Yu Liao
3 min readSep 23, 2019

--

面試常見問題筆記

MVC(Model-View-Controller)

MVC 模式是 1978 年由 Trygve Reenskaug 提出的軟體架構框架,便於解耦、重複利用。

image source: https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller#/media/File:MVC-Process.svg

M (Model,模型): 封裝與資料庫的訪問,處理對資料庫的增刪改查(CRUD)。

V (View,視圖):負責(1)處理業務邏輯、封裝結果;(2)生成頁面展現給使用者。

C (Controller,控制器):對 Request、Response 進行處理、處理 Model 與 View 的交互。

MTV(Model-Template-View)

Django 採用的是類似 MVC 的 MTV (Model-Template-View) 架構:

image source: https://djangobook.com/mdj2-django-structure/

M (Model,模型): 同上 Model。

T (Template,模板):同上的 View (2)生成頁面展現給使用者的部分,也就是我們看見的前端 HTML、CSS、JavaScript 的部分。

V (Views,視圖):同上的 View (1)處理業務邏輯、封裝結果的部分,負責處理 URL 與 callback 函式之間的關係,每一個view都代表一個簡單的Python function。

C (Controller,控制器)的部分如果要對應的話為 Django 本身。

--

--