Django採用了 MTV 的框架模式,即模型(Model)、模板(Template)和視圖(Views),三者之間負責不一樣的職責。數據庫

- 模型:數據存儲層,處理與數據相關的全部事務,例如如何存取、如何驗證有效性、包含哪些行爲以及數據之間的關係等。負責業務對象與數據庫的對象(orm)。
- 模板:表現層,處理與表現相關的決定,例如如何在頁面或其餘類型的文檔中進行顯示。
Django做爲Web框架,須要一種很便利的方法動態的生成HTML網頁,所以有了模板這個概念。模板包含所需HTML的部分代碼以及一些特殊的語法,特殊語法用於描述如何將視圖傳遞的數據動態插入HTML網頁中。
Django能夠配置一個或多個模板引擎(甚至是0個,如先後端分離,Django只提供API接口,無需使用模板引擎),模板引擎有Django模板語言(DTL)和Jinja2。Django模板語言是Django內置的功能之一,Jinja2是當前Python流行的模板語言。
- 視圖:業務邏輯層,存取模型及調取恰當模板的相關邏輯,模型與模板的橋樑。主要負責處理用戶請求和生成相應的相應內容,而後在頁面或其餘類型文檔中顯示。也能夠理解爲視圖是MVC架構裏面的C部分(控制器),主要處理功能和業務上的邏輯。咱們習慣使用視圖函數處理HTTP請求,記載視圖裏定義def函數,這種方式成爲FBV(Function Base Views)。
但願以上內容能給各位帶來一些幫助。後端