Model–View–Controller
- Model: 資料庫存取
- View: 使用者介面
- Controller: 控制整合
說到網頁開發,就不得不提一下MVC架構,維基百科如是說:MVC為軟體工程中的一種軟體架構,將軟體系統分為三個部分:模型(Model)、視圖(View)和控制器(Controller),目的是為了實現一種動態的程式設計,使後續對程式的修改及擴充簡化,並且使程式某一部分的重複利用成為可能。
MVC是一種設計理念而非技術,旨在提高開發項目的可擴展性及可維護性,而這樣一個從實際開發所歸納出來的抽象概念,事實上其定義是相當模糊的,尤其是在經過了多年發展後…在Django筆記就不多做探討了。
Model-Template-View
- Model: 資料庫存取
- Template: 使用者介面
- View: 控制整合
Django雖然看似獨樹一格自定義了MTV架構,但MTV和MVC的概念是相同的,我嘗試畫了架構對照圖:
以較為白話的方式來描述MTV架構,就是依開發需求去定義Model在資料庫中生成對應的Table,透過View所定義的程式邏輯去整合、控制數據,再交由負責前端的Template呈現給使用者,而使用者亦是透過Template和後端數據做互動。
我認為Django初學者只是抽象地討論MTV是無法很好地理解其互動關係的,還是喜歡learning by doing。