Django眼中的MVC

來源:互聯網
上載者:User

標籤:分享   gif   其他   資料格式   view(視圖)   使用者   表視圖   組成   格式   

(轉載)http://www.cnblogs.com/michaely/p/3340087.html

 MVC是眾所周知的模式,即:將應用程式分解成三個組成部分:model(模型),view(視圖),和 controller(控制 器)。其中:

             M 管理應用程式的狀態(通常儲存到資料庫中),並約束改變狀態的行為(或者叫做“商務規則”)。
             C 接受外部使用者的操作,根據操作訪問模型擷取資料,並調用“視圖”顯示這些資料。控制器是將“模型”和“視圖”隔離,並成為二者之間的聯絡紐帶。
             V 負責把資料格式化後呈現給使用者。

在《Agile Web Development with Rails》中有這樣一張圖對MVC模式進行了很好的解釋:

 

Django也是一個MVC架構。但是在Django中,控制器接受使用者輸入的部分由架構自行處理,所以 Django 裡更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式:

    M 代表模型(Model),即資料存取層。 該層處理與資料相關的所有事務: 如何存取、如何驗證有效性、包含哪些行為以及資料之間的關係等。

    T 代表模板(Template),即表現層。 該層處理與表現相關的決定: 如何在頁面或其他類型文檔中進行顯示。

    V 代表視圖(View),即商務邏輯層。 該層包含存模數型及調取恰當模板的相關邏輯。 你可以把它看作模型與模板之間的橋樑。

需要注意的是,不能簡單的把 Django 視圖認為是MVC控制器,把 Django 模板認為MVC視圖。 
區別在於:
     Django 視圖 不處理使用者輸入,而僅僅決定要展現哪些資料給使用者;
     Django 模板 僅僅決定如何展現Django視圖指定的資料。


或者說, Django將MVC中的視圖進一步分解為 Django視圖 和 Django模板兩個部分,分別決定 “展現哪些資料” 和 “如何展現”,使得Django的模板可以根據需要隨時替換,而不僅僅限制於內建的模板。

 

至於MVC控制器部分,由Django架構的URLconf來實現。URLconf設計非常巧妙,其機制是使用Regex匹配URL,然後調用合適的Python函數。雖然一開始有些不習慣,但是你很快就會喜歡上它,因為URLconf對於URL的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful的,或者是另類的。

Django眼中的MVC

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.