亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django MTV和MVC的區(qū)別詳解

 更新時間:2021年03月23日 10:25:52   投稿:zx  
這篇文章主要介紹了Django MTV和MVC的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在上一節(jié)《Django是什么》中,我們對 Django 的誕生以及 Web 框架的概念有了基本的了解,本節(jié)我們介紹 Django 的設(shè)計模式,也就是 MTV。

在 Web 開發(fā)領(lǐng)域還有另外一個非常著名的設(shè)計模式——MVC,它和 MTV 又有什么區(qū)別呢?這也是本節(jié)關(guān)注的重點內(nèi)容。

1. MVC設(shè)計模式

我們先對 MVC 設(shè)計模式進行介紹,它是 Web 設(shè)計模式的經(jīng)典之作,MTV 模式也是在它的基礎(chǔ)上衍生而來。

MVC 是 Model-View-Controller 的縮寫,其中每個單詞都有其不同的含義:

  • Modle 代表數(shù)據(jù)存儲層,是對數(shù)據(jù)表的定義和數(shù)據(jù)的增刪改查;
  • View 代表視圖層,是系統(tǒng)前端顯示部分,它負責(zé)顯示什么和如何進行顯示;
  • Controller 代表控制層,負責(zé)根據(jù)從 View 層輸入的指令來檢索 Model 層的數(shù)據(jù),并在該層編寫代碼產(chǎn)生結(jié)果并輸出。

圖1:MVC 設(shè)計模式示意圖

MVC 設(shè)計模式的請求與響應(yīng)過程描述如下:

  • 用戶通過瀏覽器向服務(wù)器發(fā)起 request 請求,Controller 層接受請求后,同時向 Model 層和 View 發(fā)送指令;
  • Mole 層根據(jù)指令與數(shù)據(jù)庫交互并選擇相應(yīng)業(yè)務(wù)數(shù)據(jù),然后將數(shù)據(jù)發(fā)送給 Controller 層;
  • View 層接收到 Controller 的指令后,加載用戶請求的頁面,并將此頁面發(fā)送給 Controller 層;
  • Controller 層接收到 Model 層和 View 層的數(shù)據(jù)后,將它們組織成響應(yīng)格式發(fā)送給瀏覽器,瀏覽器通過解析后把頁面展示出來。

MVC 的 3 層之間緊密相連,但又相互獨立,每一層的修改都不會影響其它層,每一層都提供了各自獨立的接口供其它層調(diào)用,MVC 的設(shè)計模式降低了代碼之間的耦合性(即關(guān)聯(lián)性),增加了模塊的可重用性,這就是 MVC 的設(shè)計模式。

2. MTV設(shè)計模式

那么 Django 的 MTV 又是怎么回事呢?下面講解 Django 的設(shè)計模式。

Django 借鑒了經(jīng)典的 MVC 模式,它也將交互的過程分為了 3 個層次,也就是 MTV 設(shè)計模式;

  • Model:數(shù)據(jù)存儲層,處理所有數(shù)據(jù)相關(guān)的業(yè)務(wù),和數(shù)據(jù)庫進行交互,并提供數(shù)據(jù)的增刪改查;
  • Template:模板層(也叫表現(xiàn)層)具體來處理頁面的顯示;
  • View:業(yè)務(wù)邏輯層,處理具體的業(yè)務(wù)邏輯,它的作用是連通Model 層和 Template 。


圖2:Django MTV 設(shè)計模式示意圖

我們按照 MVC 的設(shè)計模式對 MTV 進行分析,MTV 設(shè)計模式中,用 View 層取代了 Controller 層的位置,用 Template 層取代了原來 View 層的位置。

初次接觸 Django 的設(shè)計模式的人,可能會對 Template 層產(chǎn)生疑問,其實 Template 英文的含義就是“模板”的意思,你可以簡單理解成,它是一個 HTML 頁面 ,HTML 頁面的渲染在視圖層完成。

同樣我們也對 MTV 設(shè)計模式的請求與響應(yīng)過程進行描述:

  • 用戶通過瀏覽器對服務(wù)器發(fā)起 request 請求,服務(wù)器接收請求后,通過 View 的業(yè)務(wù)邏輯層進行分析,同時向 Model 層和Template 層發(fā)送指令;
  • Mole 層與數(shù)據(jù)庫進行交互,將數(shù)據(jù)返回給 View 層;
  • Template 層接收到指令后,調(diào)用相應(yīng)的模板,并返回給 View 層;
  • View 層接收到模板與數(shù)據(jù)后,首先對模板進行渲染(即將相應(yīng)的數(shù)據(jù)賦值給模板),然后組織成響應(yīng)格式返回給瀏覽器,瀏覽器進行解析后并最終呈現(xiàn)給用戶。

通過以上兩種設(shè)計模式的比較, 我們可以得出 MTV 是 MVC 的一種細化,將原來 MVC 中的 V 層拿出來進行分離,視圖的顯示與如何顯示交給 Template 層,而 View 層更專注于實現(xiàn)業(yè)務(wù)邏輯。其實在 Django 是有 Controller 層的,只不過它由框架本身來實現(xiàn),所以我們不用關(guān)心它。Django 更關(guān)注于M、T 和 V。

到此這篇關(guān)于Django MTV和MVC的區(qū)別詳解的文章就介紹到這了,更多相關(guān)Django MTV和MVC內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python圖像加噪聲的實現(xiàn)示例

    python圖像加噪聲的實現(xiàn)示例

    圖像加噪聲就是其中一種常見的處理方式,噪聲可以幫助提高圖像的真實性和復(fù)雜性,使得處理后的圖像更加接近真實的場景,本文主要介紹了python圖像加噪聲的實現(xiàn)示例,感興趣的可以了解一下
    2023-08-08
  • 10個示例帶你掌握python中的元組

    10個示例帶你掌握python中的元組

    這篇文章主要介紹了python中的元組的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • python 如何快速找出兩個電子表中數(shù)據(jù)的差異

    python 如何快速找出兩個電子表中數(shù)據(jù)的差異

    下面小編就為大家?guī)硪黄猵ython 如何快速找出兩個電子表中數(shù)據(jù)的差異。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Python OpenCV處理圖像之圖像像素點操作

    Python OpenCV處理圖像之圖像像素點操作

    這篇文章主要為大家詳細介紹了Python OpenCV處理圖像之圖像像素點操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python實現(xiàn)數(shù)據(jù)庫表的監(jiān)控警告的項目實踐

    Python實現(xiàn)數(shù)據(jù)庫表的監(jiān)控警告的項目實踐

    本文主要介紹了使用Python 實現(xiàn)對數(shù)據(jù)庫表的監(jiān)控告警功能, 并將告警信息通過釘釘機器人發(fā)送到釘釘群,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • python實現(xiàn)將中文日期轉(zhuǎn)換為數(shù)字日期

    python實現(xiàn)將中文日期轉(zhuǎn)換為數(shù)字日期

    這篇文章主要介紹了python實現(xiàn)將中文日期轉(zhuǎn)換為數(shù)字日期,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python文件操作函數(shù)用法實例詳解

    Python文件操作函數(shù)用法實例詳解

    這篇文章主要介紹了Python文件操作函數(shù)用法實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python讀寫Json涉及到中文的處理方法

    Python讀寫Json涉及到中文的處理方法

    下面小編就為大家?guī)硪黄狿ython讀寫Json涉及到中文的處理方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 詳解Python+Matplotlib繪制面積圖&熱力圖

    詳解Python+Matplotlib繪制面積圖&熱力圖

    這篇文章主要介紹了如何利用Python+Matplotlib繪制面積圖喝熱力圖,文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-04-04
  • python接口自動化之ConfigParser配置文件的使用詳解

    python接口自動化之ConfigParser配置文件的使用詳解

    這篇文章主要介紹了python接口自動化之ConfigParser配置文件的使用,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08

最新評論