根據wiki對於MVC的說明:
MVC模式(Model-View-Controller)是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)、檢視(View)和控制器(Controller)
‧(控制器Controller)- 負責轉發請求,對請求進行處理。
‧(檢視View) - 介面設計人員進行圖形介面設計。
‧(模型Model) - 程式設計師編寫程式應有的功能(實作演算法等等)、資料庫專家進行資料管理和資料庫設計(可以實作具體的功能)。

但是python的django框架卻變形為MTV,與MVC的對照如下表:

MVC

MTV (django)

Model  模型

Model 模型

View  檢視

Template 模板

Controller  控制器

View 視圖

 

先不用程式說明,以去販賣機投飲料為例:

人站在販賣機前看到了投幣口與飲料的燈號; 人所看到的是View
投入十元後; Controller接收到十元,隨後詢問Model,Model確認販賣機內有沒有十元飲料的選擇,發現有果菜汁,回傳給Controller
果菜汁的燈號亮; Controller通知View,將果菜汁的燈號打開
操作者看到果菜汁按鈕的燈號亮起; View更新果菜汁的燈號由關轉為開

以上例子可以知道

人們永遠只看到View
Controller就像是掮客,周旋在Model和View中間,收到user input後會跟Model確認
Model像是倉管,查詢資料庫後回覆是否有此選項與是否仍有庫存
Model的回應會傳給掮客Controller,再由Controller修改使用者看到改變燈號的View

文章標籤
創作者介紹
創作者 長風破浪會有時 的頭像
長風破浪會有時

行路難 多歧路

長風破浪會有時 發表在 痞客邦 留言(0) 人氣()