最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入淺析Django MTV模式

 更新時(shí)間:2021年09月04日 11:25:19   作者:WindOfMayGIS  
Django是基于MTV模式的框架,需要配合url控制器(路徑分發(fā))使用,本文重點(diǎn)給大家介紹Django MTV模式詳解,需要的朋友參考下吧

MVC模式

MVC, 全名Model View Controller, 是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model), 視圖(View)和控制器(Controller), 具有耦合性低,重用性高、生命周期成本低等優(yōu)點(diǎn)。

在這里插入圖片描述

MVT模式

模型:數(shù)據(jù)存儲(chǔ)層,處理與數(shù)據(jù)相關(guān)的所有事務(wù),例如如何存取、如何驗(yàn)證有效性、包含哪些行為以及數(shù)據(jù)之間的關(guān)系等。負(fù)責(zé)業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)的對(duì)象(orm)。
模板:表現(xiàn)層,處理與表現(xiàn)相關(guān)的決定,例如如何在頁(yè)面或其他類型的文檔中進(jìn)行顯示。
Django作為Web框架,需要一種很便利的方法動(dòng)態(tài)的生成HTML網(wǎng)頁(yè),因此有了模板這個(gè)概念。模板包含所需HTML的部分代碼以及一些特殊的語(yǔ)法,特殊語(yǔ)法用于描述如何將視圖傳遞的數(shù)據(jù)動(dòng)態(tài)插入HTML網(wǎng)頁(yè)中。
Django可以配置一個(gè)或多個(gè)模板引擎(甚至是0個(gè),如前后端分離,Django只提供API接口,無(wú)需使用模板引擎),模板引擎有Django模板語(yǔ)言(DTL)和Jinja2。Django模板語(yǔ)言是Django內(nèi)置的功能之一,Jinja2是當(dāng)前Python流行的模板語(yǔ)言。
視圖:業(yè)務(wù)邏輯層,存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯,模型與模板的橋梁。主要負(fù)責(zé)處理用戶請(qǐng)求和生成相應(yīng)的相應(yīng)內(nèi)容,然后在頁(yè)面或其他類型文檔中顯示。也可以理解為視圖是MVC架構(gòu)里面的C部分(控制器),主要處理功能和業(yè)務(wù)上的邏輯。我們習(xí)慣使用視圖函數(shù)處理HTTP請(qǐng)求,記載視圖里定義def函數(shù),這種方式成為FBV(Function Base Views)。

在這里插入圖片描述

(引自:https://zhuanlan.zhihu.com/p/362268440

Django框架的基礎(chǔ)就是MTV模式, 將開發(fā)任務(wù)分為三大部分:

  • Model:負(fù)責(zé)業(yè)務(wù)對(duì)象和數(shù)據(jù)庫(kù)的關(guān)系映射(ORM),與MVC模式中的Model是等同。
  • Template:負(fù)責(zé)如何把頁(yè)面展示給用戶(HTML),這部分類似與MVC中的視圖。
  • View:負(fù)責(zé)業(yè)務(wù)邏輯,并在適當(dāng)時(shí)候調(diào)用Model和Template。跟MVC中的Controller等同。

在這里插入圖片描述

首先,我們要知道:MVT是什么?
昨天也提到了:
M全拼為Model,與MVC中的M功能相同,負(fù)責(zé)和數(shù)據(jù)庫(kù)交互,進(jìn)行數(shù)據(jù)處理。
V全拼為View,與MVC中的C功能相同,接收請(qǐng)求,進(jìn)行業(yè)務(wù)處理,返回應(yīng)答。
T全拼為Template,與MVC中的V功能相同,負(fù)責(zé)封裝構(gòu)造要返回的html。

MVT是一個(gè)前沿的軟件架構(gòu)模式,它具有高效的ORM(Object Relation Mapping)數(shù)據(jù)操作,將程序中的對(duì)象【object】和數(shù)據(jù)庫(kù)中的表【relation】建立關(guān)聯(lián)關(guān)系,關(guān)系【mapping】的過(guò)程稱為ORM.

為什么使用MVT結(jié)構(gòu)?

1.實(shí)現(xiàn)高內(nèi)聚低耦合易于開發(fā)
在實(shí)際開發(fā)過(guò)程中,需要根據(jù)不同的需求對(duì)原版本進(jìn)行迭代,MVT把對(duì)數(shù)據(jù)庫(kù)操作,請(qǐng)求處理和頁(yè)面布局進(jìn)行了分離,方便了對(duì)代碼的更新,不需要牽一發(fā)而動(dòng)全身,易于代碼的維護(hù)。
2.提高開發(fā)效率
做到了前后端的分離,易于代碼的整合.方便使用者分工合作。也提高了重用性,對(duì)于相似部分方便復(fù)用,提高了開發(fā)效率。
那么,你是不是還記住了那句話“Django框架遵循MVC設(shè)計(jì)”?MVC是個(gè)什么玩意兒?
M表示Model,主要用于對(duì)數(shù)據(jù)庫(kù)層的封裝;
V表示View,用于向用戶展示結(jié)果;
C表示Controller,是核心,用于處理請(qǐng)求、獲取數(shù)據(jù)、返回結(jié)果。

關(guān)于MVC,有3點(diǎn)需要注意:

1.大部分開發(fā)語(yǔ)言中都有MVC框架;
2.MVC框架的核心思想是:解耦;
3.能降低各功能模塊之間耦合性,方便變更,更容易重構(gòu)代碼,最大程度實(shí)現(xiàn)代碼重用。

最后,Django架構(gòu)模式:
MVT架構(gòu)模式:在MVC基礎(chǔ)上,對(duì)控制器controller進(jìn)行了封裝,增加了模塊功能【Templates】實(shí)現(xiàn)前端網(wǎng)頁(yè)【Html】
MVC架構(gòu)模式:數(shù)據(jù)model–>視圖views–>數(shù)據(jù)交互–>服務(wù)器–>控制器controller–>相應(yīng)函數(shù)的調(diào)用。

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

相關(guān)文章

  • python入門:這篇文章帶你直接學(xué)會(huì)python

    python入門:這篇文章帶你直接學(xué)會(huì)python

    本教程并未涵蓋Python語(yǔ)言的全部?jī)?nèi)容,只是一個(gè)入門的教程,Python有非常多的庫(kù)以及很多的功能特點(diǎn)需要學(xué)習(xí),小編只是拋磚引玉,希望大家可以從中受益
    2018-09-09
  • python3.8.3安裝教程及環(huán)境配置的詳細(xì)教程(64-bit)

    python3.8.3安裝教程及環(huán)境配置的詳細(xì)教程(64-bit)

    這篇文章主要介紹了python3.8.3安裝教程及環(huán)境配置的詳細(xì)教程(64-bit),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • python之Django自動(dòng)化資產(chǎn)掃描的實(shí)現(xiàn)

    python之Django自動(dòng)化資產(chǎn)掃描的實(shí)現(xiàn)

    這篇文章主要介紹了python之Django自動(dòng)化資產(chǎn)掃描的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python交換變量

    Python交換變量

    Python美味第一頓,來(lái)個(gè)方便快捷的變量交換!為什么是Python?!因?yàn)镻ython中交換變量不需要臨時(shí)變量!
    2008-09-09
  • 使用Python根據(jù)一個(gè)列表的順序?qū)ζ渌斜磉M(jìn)行排序

    使用Python根據(jù)一個(gè)列表的順序?qū)ζ渌斜磉M(jìn)行排序

    這篇文章主要介紹了使用Python根據(jù)一個(gè)列表的順序?qū)ζ渌斜磉M(jìn)行排序,根據(jù)列表B中每個(gè)元素的下標(biāo)來(lái)獲取列表A中對(duì)應(yīng)位置的元素,將其作為排序依據(jù)即可,需要的朋友可以參考下
    2023-10-10
  • Python pickle模塊用法實(shí)例分析

    Python pickle模塊用法實(shí)例分析

    這篇文章主要介紹了Python pickle模塊用法,實(shí)例分析了pickle模塊的功能與相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • Python數(shù)據(jù)庫(kù)sqlite3圖文實(shí)例詳解

    Python數(shù)據(jù)庫(kù)sqlite3圖文實(shí)例詳解

    SQLite是一個(gè)進(jìn)程內(nèi)的庫(kù),實(shí)現(xiàn)了自給自足的、無(wú)服務(wù)器的、零配置的、事務(wù)性的SQL數(shù)據(jù)庫(kù)引擎,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)庫(kù)sqlite3的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • Python生成六萬(wàn)個(gè)隨機(jī),唯一的8位數(shù)字和數(shù)字組成的隨機(jī)字符串實(shí)例

    Python生成六萬(wàn)個(gè)隨機(jī),唯一的8位數(shù)字和數(shù)字組成的隨機(jī)字符串實(shí)例

    今天小編就為大家分享一篇Python生成六萬(wàn)個(gè)隨機(jī),唯一的8位數(shù)字和數(shù)字組成的隨機(jī)字符串實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python中最神秘missing()函數(shù)介紹

    Python中最神秘missing()函數(shù)介紹

    大家好,本篇文章主要講的是Python中最神秘missing()函數(shù)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Python個(gè)人博客程序開發(fā)實(shí)例后臺(tái)編寫

    Python個(gè)人博客程序開發(fā)實(shí)例后臺(tái)編寫

    這篇文章主要介紹了怎樣用Python來(lái)實(shí)現(xiàn)一個(gè)完整的個(gè)人博客系統(tǒng),我們通過(guò)實(shí)操上手的方式可以高效的鞏固所學(xué)的基礎(chǔ)知識(shí),感興趣的朋友一起來(lái)看看吧
    2022-12-12

最新評(píng)論

基隆市| 灵丘县| 宁武县| 横峰县| 石狮市| 亚东县| 杂多县| 上蔡县| 东宁县| 长治市| 双牌县| 平和县| 武夷山市| 和田县| 饶平县| 富川| 三原县| 龙井市| 延川县| 天水市| 松江区| 北流市| 土默特右旗| 如皋市| 神农架林区| 张家港市| 化州市| 永春县| 北安市| 镇宁| 聊城市| 老河口市| 武义县| 康保县| 中西区| 视频| 江山市| 玉田县| 宝坻区| 五家渠市| 青龙|