資源描述:
《django框架架構(gòu)簡析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、Django框架架構(gòu)簡析摘要隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的Web開發(fā)框架應(yīng)運(yùn)而生。Django就是其中一款既能節(jié)約開發(fā)吋間又能讓開發(fā)充滿樂趣的流行開發(fā)框架。本文主要從架構(gòu)方面簡要介紹DjangoWeb開發(fā)框架,通過分析其架構(gòu)來探索為什么使用Django能夠花費不多的時間構(gòu)建和維護(hù)質(zhì)量上乘的Web應(yīng)用。Web框架介紹在互聯(lián)網(wǎng)誕生之際,人們是通過編寫標(biāo)準(zhǔn)的CGI程序來開發(fā)Web應(yīng)用的,此時程序員需要處理所有的操作以完成一個靜態(tài)頁而的展示,若是展示動態(tài)頁而,程序員的工作將變得非常負(fù)貴而且界易出錯,這是他將面臨許多問題,如:1.
2、當(dāng)多個動態(tài)頁面耑要同時連接數(shù)據(jù)庫時,將會發(fā)生什么?2.—個開發(fā)人員真的需要去關(guān)注如何輸出Content-Type以及完成所有操作后去關(guān)閉數(shù)據(jù)庫么?尤其是明白此類問題只會降低開發(fā)人員的工作效率,增加犯錯誤的兒率。3.如果這樣的代碼被重用到一個復(fù)合的環(huán)境屮會發(fā)生什么?每個頁而都分別對應(yīng)獨立的數(shù)據(jù)庫和密碼嗎?4.如果一個Web設(shè)計師,完全沒有某門新語言的開發(fā)經(jīng)驗,但是又耑要使用新語言重新設(shè)計貞面的話,又將發(fā)生什么呢?以上正是Web框架致力于解決的問題。Web框架為應(yīng)用程序提供了一套程序框架,這樣你可以專注于編寫清晰、易維護(hù)的
3、代碼,而無需從頭做起。針對問題1,一個Web開發(fā)框架會把連接數(shù)據(jù)庫的代碼都統(tǒng)一重新組織到一個公共函數(shù)里以減少代碼量。針對問題2,框架會幫助完成初始化和釋放資源相關(guān)的工作。針對問題3,Web開發(fā)框架一般都會有環(huán)境相關(guān)的配置文件以增強(qiáng)程序的可移植性。對于問題4,理想的情況是將業(yè)務(wù)邏輯與實際數(shù)據(jù)操作分開,這樣設(shè)計師的重新設(shè)計可以不對實際生產(chǎn)造成太大的影響。一般怙況下,Web開發(fā)框架的誕生歷程是這樣的:1.從頭開始編寫網(wǎng)絡(luò)應(yīng)用程序。2.從頭編寫另一個網(wǎng)絡(luò)應(yīng)用程序。3.從第一步中總結(jié)(找出其中通用的代碼),并運(yùn)用在第二步中。4.
4、重構(gòu)代碼使得能在第2個程序中使川第1個程序巾的通用代碼。5.重復(fù)2-4步驟若干次。6.意識到發(fā)明了一個框架。Django框架簡介Django是從真實世界的應(yīng)用巾成長起來的,它是由堪薩斯州Lawrence城巾的一個網(wǎng)絡(luò)開發(fā)小組編寫的、它誕生于2003年秋天,那時LawrenceJournal-World報紙的程序員AdrianHolovaty和SimonWillison開始用Python來編寫程.序。當(dāng)時他們的WorldOnline小組制作并維護(hù)當(dāng)?shù)氐膸讉€新聞?wù)军c,并在以新聞界特有的快節(jié)奏開發(fā)環(huán)境中逐漸發(fā)展.。這些站點包
5、括有LJWorld.com>Lawrence.com和KUsports.com,用P要求增加的特征或整個程序都能在計劃時間A快速的被建立,這些時間通常只有兒天或兒個小時。因此為了需要,Adrian和Simon開發(fā)了一種節(jié)省時間的網(wǎng)絡(luò)程序開發(fā)框架,這是在截止時間前能完成程序的唯一途徑。2005年的夏天,當(dāng)這個框架開發(fā)完成時,它己經(jīng)川來制作Z很多個WorldOnline的站點。當(dāng)吋WorldOnline小組中的JacobKaplan-Moss決定把這個框架發(fā)布為一個開源軟件。他們在2005年的7月發(fā)布并取名為Django,
6、來源于一個著名的爵士樂吉他演奏家DjangoReinhardt。Django架構(gòu)分析Django架構(gòu)總覽■G7、將得到一個非常容易使用的數(shù)據(jù)庫API,同吋你也可以在Django中使用原始的SQL語句。這種設(shè)計即便于開發(fā)也便于閱讀和理解。在移植和維護(hù)代碼時會減少不少工作,更加快捷和有效。模版引擎也是很有特色的一個功能。首先來介紹一下模版,模版是一個純文本文件,或是一個用Django模板語言標(biāo)記過的普通的Python字符串,一個模板可以包含區(qū)塊紐簽和變量。模版引擎就是處理模版相關(guān)的操作的。有了模版引擎,不僅可以使代碼顯得簡介,同時代碼和邏輯分離是程序員協(xié)同工作吋不會互相干涉,造成混亂。最底層是存放數(shù)據(jù)和文件的數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)。D
8、jango框架實現(xiàn)1、Django框架目錄結(jié)構(gòu)drwxr-■xr-■X6rootroot409608-1016drwxr-■xr-■X21rootroot409608-1016drwxr-■xr-■X8rootroot409608-1016drwxr-■xr-■X4rootroot409608-1016drwxr-■xr-■X2r