Python編程語(yǔ)言的持續(xù)火爆,在新Tiobe編程語(yǔ)言排行榜中位列第五,熱度持續(xù)增加,尤其是在 AI 和 大數(shù)據(jù)時(shí)代,Python是 AI 和大數(shù)據(jù)時(shí)代的開(kāi)發(fā)語(yǔ)言。這已經(jīng)是一個(gè)不爭(zhēng)的事實(shí)了,唯一的懸念就是誰(shuí)能坐上第二把交椅了。
Python是膠水語(yǔ)言,應(yīng)用及其廣泛。在web應(yīng)用領(lǐng)域,國(guó)內(nèi)互聯(lián)公司:有號(hào)稱文藝青年的圣地--豆瓣評(píng)分,曾經(jīng)主打高端問(wèn)答知識(shí)社區(qū)的--知乎,唯有愛(ài)和美食不可辜負(fù)的--下廚房……
談到在web應(yīng)用領(lǐng)域,除了Python的語(yǔ)法,Django是Python后臺(tái)一個(gè)重要的框架。今天千鋒教育的講師和大家簡(jiǎn)單的聊一下Django框架。
問(wèn)題1:什么是軟件框架?
舉個(gè)簡(jiǎn)單的例子,對(duì)于一個(gè)公司來(lái)說(shuō),公司中有各個(gè)職能部門(mén),每個(gè)部門(mén)各司其職,通過(guò)部門(mén)之間的配合來(lái)完成工作,這些部門(mén)就形成了一個(gè)公司的組織架構(gòu)。從某種意義上來(lái)說(shuō),公司就是一種框架。那么對(duì)應(yīng)到軟件設(shè)計(jì)上來(lái)說(shuō),軟件框架是由其中的各個(gè)模塊組成的,每個(gè)模塊負(fù)責(zé)特定的功能,模塊與模塊之間相互協(xié)作來(lái)完成軟件開(kāi)發(fā)。
一個(gè)公司,它是針對(duì)某一市場(chǎng)而成立的,而軟件框架的設(shè)計(jì),也是針對(duì)某一類軟件問(wèn)題而設(shè)計(jì)的,其目的主要是提高軟件開(kāi)發(fā)效率。
問(wèn)題2:Django的簡(jiǎn)介和設(shè)計(jì)思想?
Django是用python語(yǔ)言寫(xiě)的開(kāi)源web開(kāi)發(fā)框架,并遵循MVC設(shè)計(jì)。勞倫斯出版集團(tuán)為了開(kāi)發(fā)以新聞內(nèi)容為主的網(wǎng)站,而開(kāi)發(fā)出來(lái)了這個(gè)框架,于2005年7月在BSD許可證下發(fā)布。Django的主要目的是簡(jiǎn)便、快速的開(kāi)發(fā)數(shù)據(jù)庫(kù)驅(qū)動(dòng)的網(wǎng)站。它強(qiáng)調(diào)代碼復(fù)用,多個(gè)組件可以很方便的以“插件”形式服務(wù)于整個(gè)框架,Django有許多功能強(qiáng)大的第三方插件,你甚至可以很方便的開(kāi)發(fā)出自己的工具包。這使得Django具有很強(qiáng)的可擴(kuò)展性。它還強(qiáng)調(diào)快速開(kāi)發(fā)原則。
問(wèn)題3:MVC簡(jiǎn)介
MVC的全拼為Model-View-Controller,早在20世紀(jì)80年代為程序語(yǔ)言Smalltalk發(fā)明的一種軟件設(shè)計(jì)模式,是為了將傳統(tǒng)的輸入(input)、處理(processing)、輸出(output)任務(wù)運(yùn)用到圖形化用戶交互模型中而設(shè)計(jì)的。
現(xiàn)MVC是一種架構(gòu)設(shè)計(jì)模式,是一種設(shè)計(jì)理念。是為了達(dá)到分層設(shè)計(jì)的目的,從而使代碼解耦,便于維護(hù)和代碼的復(fù)用。MVC是3個(gè)單詞的縮寫(xiě),全稱:Model-View-Controller(模型-視圖-控制器)。MVC就是提供一種規(guī)則,讓你把相同類型的代碼放在一起,這樣就形成了層次,從而達(dá)到分層解耦、復(fù)用、便于測(cè)試和維護(hù)的目的。
當(dāng)前主流的開(kāi)發(fā)語(yǔ)言如Java、PHP、Python中都有MVC框架。
Web MVC各部分的功能
M全拼為Model,主要封裝對(duì)數(shù)據(jù)庫(kù)層的訪問(wèn),對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增、刪、改、查操作。
V全拼為View,用于封裝結(jié)果,生成頁(yè)面展示的html內(nèi)容。
C全拼為Controller,用于接收請(qǐng)求,處理業(yè)務(wù)邏輯,與Model和View交互,返回結(jié)果
問(wèn)題4:Django框架遵循MVC設(shè)計(jì),并且有一個(gè)專有名詞:MVT
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全拼為T(mén)emplate,與MVC中的V功能相同,負(fù)責(zé)封裝構(gòu)造要返回的html。