




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Django摘要Web開發(fā)框架應(yīng)運(yùn)而生。Django就是其中一款既能節(jié)約開發(fā)時(shí)間又能讓開發(fā)充滿樂趣的流行開發(fā)框架。本文主要從架構(gòu)方面簡(jiǎn)要介紹 WebDjango能夠花費(fèi)不多的時(shí)間構(gòu)建和維護(hù)Web應(yīng)用。Web 框架介紹CGI Web 當(dāng)多個(gè)動(dòng)態(tài)頁(yè)面需要同時(shí)連接數(shù)據(jù)庫(kù)時(shí),將會(huì)發(fā)生什么?一個(gè)開發(fā)人員真的需要去關(guān)注如何輸出Content-Type 庫(kù)么?尤其是明白此類問題只會(huì)降低開發(fā)人員的工作效率,增加犯錯(cuò)誤的幾率。如果這樣的代碼被重用到一個(gè)復(fù)合的環(huán)境中會(huì)發(fā)生什么?每個(gè)頁(yè)面都分別對(duì)應(yīng)獨(dú)立的數(shù)據(jù)庫(kù)和密碼嗎?4、如果一個(gè) Web 設(shè)計(jì)師,完全沒有某門新語(yǔ)言的開發(fā)經(jīng)驗(yàn),但是又需要使用新語(yǔ)言重新設(shè)計(jì)頁(yè)面的話,
2、又將發(fā)生什么呢?Web Web 1,一個(gè) Web 開發(fā)框架會(huì)把連接數(shù)據(jù)庫(kù)的代碼都統(tǒng)一重新組織到一個(gè)公共函數(shù)里以減少代碼量。針對(duì)問題 開發(fā)框架一般都會(huì)有環(huán)境相關(guān)的配置文件以增強(qiáng)程序的可移植性。對(duì)于問題 4,理想的情況是將業(yè)務(wù)邏輯與實(shí)際數(shù)據(jù)操作分開,這樣設(shè)計(jì)師的重新設(shè)計(jì)可以不對(duì)實(shí)際生產(chǎn)造成太大的影響。一般情況下,Web 開發(fā)框架的誕生歷程是這樣的:從頭開始編寫網(wǎng)絡(luò)應(yīng)用程序。從頭編寫另一個(gè)網(wǎng)絡(luò)應(yīng)用程序。從第一步中總結(jié)(找出其中通用的代碼,并運(yùn)用在第二步中。重構(gòu)代碼使得能在第 2 個(gè)程序中使用第 1 個(gè)程序中的通用代碼。重復(fù) 2-4 步驟若干次。意識(shí)到發(fā)明了一個(gè)框架。Django 框架簡(jiǎn)介Django
3、 Lawrence 城中的一個(gè)網(wǎng)2003LawrenceJournal-World報(bào)紙的程序員AdrianHolovatySimonWillisonPythonWorld小組制作并維護(hù)當(dāng)?shù)氐膸讉€(gè)新聞?wù)军c(diǎn),并在以新聞界特有的快節(jié)奏開發(fā)環(huán)境中逐漸發(fā)展 .。這些站點(diǎn)包括有 LJW、L KU, 用戶要求增加的特征或 Simon 開發(fā)了一種節(jié)省時(shí)間的網(wǎng)絡(luò)程序開發(fā)框架, 這是在截止時(shí)間前能完成程序的唯一途徑。2005 WorldOnlineWorldOnlineJacobKaplan-Moss決定把這個(gè)框架發(fā)布為一個(gè)開源軟2005 7 。Django 架構(gòu)分析Django 架構(gòu)總覽圖 1 Django 架
4、構(gòu)總覽圖從圖中可以看去,Django 使用的是非常清晰的分層結(jié)構(gòu),最上層是基本的網(wǎng)絡(luò)通信處MVC MTV 。在傳統(tǒng)的 MVC 模式中,M,Model 層,是數(shù)據(jù)訪問層,處理與數(shù)據(jù)相關(guān)的操作,如如何存取、如何確認(rèn)有效性,哪些行為用到哪些數(shù)據(jù)等等,用于處理業(yè)務(wù)邏輯;V,View C,Controller Model View View Model 進(jìn)行處理并再使用合理View 展示給用戶。DjangoMTV模式中,MModel層,也是與數(shù)據(jù)處理相關(guān)的部分,與MVCView TemplateViewDjangoVCMVC MVCC 統(tǒng)的 MVC 模式更進(jìn)一步減少了程序員的工作,所以開發(fā)效率有了進(jìn)一步
5、的提高。接下來(lái)是頗具特色的對(duì)象關(guān)系映射和模版引擎。對(duì)象關(guān)系映射(ORM)Python 類形式定義你的數(shù)據(jù)模型。ORM 將模型與關(guān)系數(shù)據(jù)庫(kù)連接起來(lái),你將得到一個(gè)非常容易使Django SQL Django Python 最底層是存放數(shù)據(jù)和文件的數(shù)據(jù)庫(kù)系統(tǒng)和文件系統(tǒng)。Django 框架實(shí)現(xiàn)1、Django 框架目錄結(jié)構(gòu)圖 2 Django 框架目錄結(jié)構(gòu)Conf 處理全局配置, MiddleWare等2) urls , url 的映射關(guān)系。Django官方的。Core,Django 的核心處理庫(kù),包括 url 分析、處理請(qǐng)求、緩存等,其中處理請(qǐng) 求是核心了,比如處理 fastcgi 就是由 wsgi
6、.py 處理。Db,顧名思義,處理與數(shù)據(jù)庫(kù)相關(guān)的,就是 ORM。DispatchDjangopydispatch 庫(kù),主要處 理消費(fèi)者-forms & newforms & oldformshtml 的表單,不用多介紹。MiddlewareHTTPrequestresponsecommonpattern/重新/blog pattern 是blog/$pattern再用查找,當(dāng)然前提是 APPEND_SLASH=True。Template,Django 的模板。Application tag wrapperINSTALLED_APPS TemplatetagsDjango.Templatetag
7、sload blogtag 時(shí),就可以使用 import Django.Templatetags.blog 方式加載了。不過(guò)這有一個(gè)問題,如果其Application blog.pyblog.py tagDjango Utils,公共庫(kù),很多公用的類都在放在這里。Views,最基本的 View 方法。2、Django 框架程序組成Project,一個(gè)完整的 Web 服務(wù),一般由多個(gè)模塊組成。Application,可以理解為模塊,比如用戶管理、博客管理等,包含了數(shù)據(jù)的組成和據(jù)的顯示,Applicaitonproject/settings.py INSTALLED_APPS 的定義。Middle
8、warrequest 和responseMiddleware都需要在 project/settings.py中 MIDDLEWARE_CLASSES 的定義。, Template 加載和在 Application/Templates Loader 都需要在 project/settings.py 中Template_LOADERS 的定義。3、Django 框架處理流程以 request-response 為例:1加載配置Django 的配置都在 Project/settings.py Django 定義的配置,并且都通過(guò) Django.conf.settings 訪問,非常方便。2啟動(dòng)最核心
9、動(dòng)作的是通過(guò) Dmands.runfcgi Command 它運(yùn)行 Django.core.servers.fastcgi runfastcgi,runfastcgi flup WSGIServer 來(lái)fastcgi WSGIServer Django.core.handlers.wsgi WSGIHandler 類的一個(gè)實(shí)例,通過(guò) WSGIHandler Web 服務(wù)器(Apache,Lighttpd 等)傳過(guò)來(lái)的請(qǐng)Django 的世界。3處理 RequestHTTP 請(qǐng)求來(lái)時(shí),WSGIHandler BaseHandler 繼承而來(lái)。WSGIHandler WSGIRequest WSGIRequest http.HttpRequest Response 了。4創(chuàng)建 ResponseBaseHandler 的get_response 方法就是根據(jù) request 創(chuàng)建 response urls.py View Django 可以處理的關(guān)Response loader 載 Template ORM 技術(shù)從數(shù)據(jù)庫(kù)中取出數(shù)據(jù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)安全的全面考慮-從教育技術(shù)視角看辦公室發(fā)展
- 提升教師家庭教育指導(dǎo)力的教育心理學(xué)策略
- 教育心理學(xué)助力教師有效指導(dǎo)孩子成長(zhǎng)
- 數(shù)字化時(shí)代的全球教育政策革新
- 教育心理學(xué)的視角職場(chǎng)成功的學(xué)習(xí)動(dòng)力源泉
- 浙江海洋大學(xué)單招《職業(yè)適應(yīng)性測(cè)試》考前沖刺測(cè)試卷附完整答案詳解【各地真題】
- 山東公務(wù)員行測(cè)(C類)真題及答案
- 教育教學(xué)能力提升培訓(xùn)
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)及答案
- 2025青海高等職業(yè)技術(shù)學(xué)院?jiǎn)握小段锢怼房记皼_刺練習(xí)試題(A卷)附答案詳解
- 第五講靜電場(chǎng)中的電介質(zhì)電位移介質(zhì)中的高斯定理
- 人教版小學(xué)英語(yǔ)3~6年級(jí)單詞匯總(音標(biāo)版)
- 上海小學(xué)語(yǔ)文四年級(jí)上冊(cè)詞語(yǔ)表(共3頁(yè))
- 超聲回彈綜合法計(jì)算表(帶公式)
- 安全技術(shù)交底記錄桿塔組立施工
- 橡膠產(chǎn)品公差標(biāo)準(zhǔn)(各國(guó)標(biāo)準(zhǔn))
- A類機(jī)房標(biāo)準(zhǔn)(共6頁(yè))
- 常德市自來(lái)水公司水表管理制度
- 華為性格測(cè)試攻略
- GB∕T 40754-2021 商場(chǎng)公共設(shè)施服務(wù)規(guī)范
- 流體力學(xué)知識(shí)點(diǎn)大全
評(píng)論
0/150
提交評(píng)論