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