- Django 基本概念
- Django - 首頁
- Django - 基礎
- Django - 概覽
- Django - 環境
- Django - 建立專案
- Django - 應用生命週期
- Django - 建立檢視
- Django - URL 對映
- Django - 首頁
- Django - 模板系統
- Django - MVT
- Django - 新增主模板
- Django 管理員
- Django 管理員 - 介面
- Django 管理員 - 建立使用者
- Django 管理員 - 包含模型
- Django 管理員 - 設定顯示欄位
- Django 管理員 - 更新物件
- Django 模型
- Django - 模型
- Django - 插入資料
- Django - 更新資料
- Django - 刪除資料
- Django - 更新模型
- Django 靜態檔案
- Django - 新增靜態檔案
- Django - 新增 CSS 檔案
- Django 高階
- Django - 頁面未找到 (404)
- Django - 頁面重定向
- Django - 傳送電子郵件
- Django - 通用檢視
- Django - 表單處理
- Django - 檔案上傳
- Django - Apache 設定
- Django - Cookie 處理
- Django - 會話
- Django - 快取
- Django - 評論
- Django - RSS
- Django - AJAX
- Django 有用資源
- Django - 快速指南
- Django - 有用資源
- Django - 討論
Django – MVT 架構
大多數 Web 框架都實現了 MVC(模型-檢視-控制器)架構。Django 使用 MVC 的變體,並將其稱為 MVT(代表模型-檢視-模板)架構。
使用 Web 框架的優勢
一般來說,軟體框架是一個標準的可重用軟體平臺,它有助於快速開發軟體應用程式。相比之下,**Web 框架**(也稱為 Web 應用程式框架)如 Django 提供了構建 Web 應用程式、API 和 Web 服務所需的通用功能。
使用 Web 框架的主要優勢在於,它提供了開箱即用的支援來執行 Web 開發過程中的常見操作。例如,您可以輕鬆地將應用程式連線到資料庫。
通常,框架以更有效的方式處理諸如會話管理之類的任務。同樣,它與模板工具整合以在網頁上呈現動態內容。
MVC 架構
此設計模式將 Web 應用程式開發的整個過程分為三個層。下圖解釋了這三個層之間的相互作用。
在 MVC 方法中,使用者請求被控制器攔截。它與檢視層和模型層協調,將適當的響應傳送回客戶端。
模型層
模型被稱為最低級別,這意味著它負責維護資料。它處理資料。
模型層連線到資料庫。它響應控制器的請求,因為控制器本身從不與資料庫通訊。模型來回與資料庫通訊,然後將所需的資料提供給控制器。
模型負責資料定義、其處理邏輯以及與後端資料庫的互動。
檢視層
檢視是應用程式的表示層。它負責結果的放置和格式化,並將其傳送到控制器,控制器依次將其重定向到客戶端作為應用程式的響應。
資料表示由檢視元件完成。它實際上為使用者生成 UI 或使用者介面。因此,在 Web 應用程式中,當您想到檢視元件時,只需考慮 HTML/CSS 部分。
檢視由模型元件收集的資料建立,但這些資料不是直接獲取的,而是透過控制器獲取的,因此檢視僅與控制器通訊。
控制器層
它與檢視層和模型層協調,將適當的響應傳送回客戶端。
控制器層接收來自客戶端的請求,並將其轉發到模型層。模型層更新資料並將其傳送回控制器。控制器更新檢視並將響應傳送回用戶。
MVT 架構
Django 框架採用 MVT 方法。它是 MVC 方法的輕微變體。縮寫 MVT 代表模型、檢視和模板。
在這裡,模型也是應用程式的資料層。檢視實際上是承擔處理邏輯的層。模板是表示層。
Django 應用程式的元件
Django 應用程式包含以下元件:
- URL 分發器
- 檢視
- 模型
- 模板
URL 分發器
Django 的 URL 分發器機制等同於 MVC 架構中的控制器。Django 專案包資料夾中的 **urls.py** 模組充當分發器。它定義了 URL 模式。每個 URL 模式都對映到一個檢視函式,當客戶端請求的 URL 發現與其匹配時,將呼叫該檢視函式。
專案下每個應用程式中定義的 URL 模式也包含在其中。
當伺服器以客戶端 URL 的形式接收請求時,分發器將其模式與 urls.py 中可用的模式匹配,並將應用程式的流程路由到其關聯的檢視。
檢視函式
檢視函式讀取客戶端請求中包含的路徑引數、查詢引數和主體引數。它使用這些資料與模型互動以執行 CRUD 操作(如果需要)。
模型類
模型是一個 Python 類。Django 使用模型類的屬性來構建具有匹配結構的資料庫表。Django 的物件關係對映器有助於以面向物件的方式執行 CRUD 操作,而不是呼叫 SQL 查詢。
檢視使用來自客戶端以及模型的資料,並以模板的形式呈現其響應。
模板
模板是一個網頁,其中 HTML 指令碼與 Django 模板語言的程式碼塊交織在一起。
Django 的模板處理器使用從檢視接收的任何上下文資料插入這些塊,以便形成動態響應。檢視依次將響應返回給使用者。
這就是 Django 的 MVT 架構如何在 Web 應用程式中處理請求-響應週期。