以下是【融智】分享的內(nèi)容全文:
[Python爬蟲]---Django視頻教程Django是一個(gè)開放源代碼的Web應(yīng)用框架,由Python寫成。采用了MVC的框架模式,即模型M,視圖V和控制器C。它最初是被開發(fā)來用于管理勞倫斯出版集團(tuán)旗下的一些以新聞內(nèi)容為主的網(wǎng)站的,即是CMS(內(nèi)容管理系統(tǒng))軟件。并于2005年7月在BSD許可證下發(fā)布。這套框架是以比利時(shí)的吉普賽爵士吉他手Django Reinhardt來命名的。
Django (Python Web 框架)
Django 項(xiàng)目是一個(gè)Python定制框架,它源自一個(gè)在線新聞 Web 站點(diǎn),于 2005 年以開源的形式被釋放出來。Django 框架的核心組件有:
用于創(chuàng)建模型的對象關(guān)系映射
為最終用戶設(shè)計(jì)的完美管理界面
一流的 URL 設(shè)計(jì)
設(shè)計(jì)者友好的模板語言
緩存系統(tǒng)。
Django(發(fā)音:[`d??????]) 是用python語言寫的開源web開發(fā)框架(open source web framework),它鼓勵(lì)快速開發(fā),并遵循MVC設(shè)計(jì)。Django遵守BSD版權(quán),初次發(fā)布于2
django logo
django logo
005年7月, 并于2008年9月發(fā)布了第一個(gè)正式版本1.0 。
Django 根據(jù)比利時(shí)的爵士音樂家Django Reinhardt命名,他是一個(gè)吉普賽人,主要以演奏吉它為主,還演奏過小提琴等。
由于Django在近年來的迅速發(fā)展,應(yīng)用越來越廣泛,被著名IT開發(fā)雜志SD Times評選為2013 SD Times 100,位列“API、庫和框架”分類第6位,被認(rèn)為是該領(lǐng)域的佼佼者
框架介紹
Django 項(xiàng)目是一個(gè)Python定制框架,它源自一個(gè)在線新聞 Web 站點(diǎn),于 2005 年以開源的形式被釋放出來。Django 框架的核心組件有:
用于創(chuàng)建模型的對象關(guān)系映射
為最終用戶設(shè)計(jì)的完美管理界面
一流的 URL 設(shè)計(jì)
設(shè)計(jì)者友好的模板語言
緩存系統(tǒng)。
Django(發(fā)音:[`d??????]) 是用python語言寫的開源web開發(fā)框架(open source web framework),它鼓勵(lì)快速開發(fā),并遵循MVC設(shè)計(jì)。Django遵守BSD版權(quán),初次發(fā)布于2005年7月, 并于2008年9月發(fā)布了第一個(gè)正式版本1.0 。
Django 根據(jù)比利時(shí)的爵士音樂家Django Reinhardt命名,他是一個(gè)吉普賽人,主要以演奏吉它為主,還演奏過小提琴等。
由于Django在近年來的迅速發(fā)展,應(yīng)用越來越廣泛,被著名IT開發(fā)雜志SD Times評選為2013 SD Times 100,位列“API、庫和框架”分類第6位,被認(rèn)為是該領(lǐng)域的佼佼者
架構(gòu)設(shè)計(jì)
Django是一個(gè)基于MVC構(gòu)造的框架。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關(guān)注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV模式。它們各自的職責(zé)如下:
層次
職責(zé)
模型(Model),即數(shù)據(jù)存取層
處理與數(shù)據(jù)相關(guān)的所有事務(wù): 如何存取、如何驗(yàn)證有效性、包含哪些行為以及數(shù)據(jù)之間的關(guān)系等。
模板(Template),即業(yè)務(wù)邏輯層
處理與表現(xiàn)相關(guān)的決定: 如何在頁面或其他類型文檔中進(jìn)行顯示。
視圖(View),即表現(xiàn)層
存取模型及調(diào)取恰當(dāng)模板的相關(guān)邏輯。模型與模板的橋梁。
從以上表述可以看出Django 視圖不處理用戶輸入,而僅僅決定要展現(xiàn)哪些數(shù)據(jù)給用戶,而Django 模板 僅僅決定如何展現(xiàn)Django視圖指定的數(shù)據(jù)?;蛘哒f, Django將MVC中的視圖進(jìn)一步分解為 Django視圖 和 Django模板兩個(gè)部分,分別決定 “展現(xiàn)哪些數(shù)據(jù)” 和 “如何展現(xiàn)”,使得Django的模板可以根據(jù)需要隨時(shí)替換,而不僅僅限制于內(nèi)置的模板。
至于MVC控制器部分,由Django框架的URLconf來實(shí)現(xiàn)。URLconf機(jī)制是使用正則表達(dá)式匹配URL,然后調(diào)用合適的Python函數(shù)。URLconf對于URL的規(guī)則沒有任何限制,你完全可以設(shè)計(jì)成任意的URL風(fēng)格,不管是傳統(tǒng)的,RESTful的,或者是另類的??蚣馨芽刂茖咏o封裝了,無非與數(shù)據(jù)交互這層都是數(shù)據(jù)庫表的讀,寫,刪除,更新的操作。在寫程序的時(shí)候,只要調(diào)用相應(yīng)的方法就行了,感覺很方便。程序員把控制層?xùn)|西交給Django自動完成了。 只需要編寫非常少的代碼完成很多的事情。所以,它比MVC框架考慮的問題要深一步,因?yàn)槲覀兂绦騿T大都在寫控制層的程序。現(xiàn)在這個(gè)工作交給了框架,僅需寫很少的調(diào)用代碼,大大提高了工作效率。
設(shè)計(jì)哲學(xué)
Django的主要目的是簡便、快速的開發(fā)數(shù)據(jù)庫驅(qū)動的網(wǎng)站。它強(qiáng)調(diào)代碼復(fù)用,多個(gè)組件可以很方便的以“插件”形式服務(wù)于整個(gè)框架,Django有許多功能強(qiáng)大的第三方插件,你甚至可以很方便的開發(fā)出自己的工具包。這使得Django具有很強(qiáng)的可擴(kuò)展性。它還強(qiáng)調(diào)快速開發(fā)和DRY(Do Not Repeat Yourself)原則。
Django基于MVC的設(shè)計(jì)十分優(yōu)美:
對象關(guān)系映射 (ORM,object-relational mapping):以Python類形式定義你的數(shù)據(jù)模型,ORM將模型與關(guān)系數(shù)據(jù)庫連接起來,你將得到一個(gè)非常容易使用的數(shù)據(jù)庫API,同時(shí)你也可以在Django中使用原始的SQL語句。
URL 分派:使用正則表達(dá)式匹配URL,你可以設(shè)計(jì)任意的URL,沒有框架的特定限定。像你喜歡的一樣靈活。
模版系統(tǒng):使用Django強(qiáng)大而可擴(kuò)展的模板語言,可以分隔設(shè)計(jì)、內(nèi)容和Python代碼。并且具有可繼承性。
表單處理:你可以方便的生成各種表單模型,實(shí)現(xiàn)表單的有效性檢驗(yàn)??梢苑奖愕膹哪愣x的模型實(shí)例生成相應(yīng)的表單。
Cache系統(tǒng):可以掛在內(nèi)存緩沖或其它的框架實(shí)現(xiàn)超級緩沖 -- 實(shí)現(xiàn)你所需要的粒度。
會話(session),用戶登錄與權(quán)限檢查,快速開發(fā)用戶會話功能。
國際化:內(nèi)置國際化系統(tǒng),方便開發(fā)出多種語言的網(wǎng)站。
自動化的管理界面:不需要你花大量的工作來創(chuàng)建人員管理和更新內(nèi)容。Django自帶一個(gè)ADMIN site,類似于內(nèi)容管理系統(tǒng)
工作機(jī)制
1.用manage .py runserver 啟動Django服務(wù)器時(shí)就載入了在同一目錄下的settings .py。該文件包含了項(xiàng)目中的配置信息,如前面講的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告訴Django哪個(gè)Python模塊應(yīng)該用作本站的URLConf,默認(rèn)的是urls .py
工作機(jī)制
工作機(jī)制
2.當(dāng)訪問url的時(shí)候,Django會根據(jù)ROOT_URLCONF的設(shè)置來裝載URLConf。
3.然后按順序逐個(gè)匹配URLConf里的URLpatterns。如果找到則會調(diào)用相關(guān)聯(lián)的視圖函數(shù),并把HttpRequest對象作為第一個(gè)參數(shù)(通常是request)
4.最后該view函數(shù)負(fù)責(zé)返回一個(gè)HttpResponse對象。
部署編輯
Django可以運(yùn)行在Apache,Nginx上,也可以運(yùn)行在支持WSGI,F(xiàn)astCGI的服務(wù)器上。支持多種數(shù)據(jù)庫,已經(jīng)支持Postgresql,MySql, Sqlite3,Oracle。Google App Engine也支持Django的某些部分,國內(nèi)支持的平臺有(SAE)Sina App Engine,(BAE)百度應(yīng)用引擎。
文檔編輯
Django1.0 建立了強(qiáng)大完整的文檔體系,,涵蓋了Django的方方面面,并且適合各種水平的讀者和開發(fā)者. 其中還包含若干個(gè)簡單的示例,你可以跟隨他們一步步體驗(yàn)Django的優(yōu)美。
截至目前,Django最新版本是2.0.6,1.7系列版本的文檔非常的全面,主要由以下幾部分組成:
First steps,提供一個(gè)快速起步的教程,可以很快開始使用Django
The model layer,介紹Django的抽象模型層
The view layer,介紹Django的視圖層
The template layer,介紹Django的模板層
Forms,介紹Django提供的一系列用于幫助使用表單的工具
The development process,介紹Django提供的一系列用于開發(fā)和測試的工具
The admin,介紹Django提供的用于站點(diǎn)、內(nèi)容管理的工具
Security,介紹Django提供的用于站點(diǎn)安全控制的工具
Internationalization and localization,介紹Django提供的用于全球化和本地化的工具
Performance and optimization,介紹Django提供的用于性能和優(yōu)化的方面的工具以及建議
Python compatibility,介紹Django在不同Python環(huán)境下的兼容性(Jython和Python 3)
Geographic framework,介紹Django提供的地理位置相關(guān)的工具
Common web application tools,介紹Django提供的一些常用的Web應(yīng)用程序工具(比如RSS等)
Other core functionalities,介紹Django提供的其它重要工具(比如跳轉(zhuǎn)、路由等等)
The django open source project,介紹Django作為開源項(xiàng)目的一些內(nèi)容,比如設(shè)計(jì)哲學(xué),如何參與開發(fā)等等。
1.軟件源碼推廣展示:目的展示軟件相關(guān)功能,接收技術(shù)學(xué)習(xí)者測試、測評;
2.教程課程信息展示:展示課程信息,傳授課程各階段內(nèi)容;
3.設(shè)計(jì)素材圖片展示:展示素材設(shè)計(jì)理念、思維方式、傳播設(shè)計(jì)理念;
4.福利優(yōu)惠信息展示:分享各類最新的福利信息,各種優(yōu)惠信息展示;
以上分享目的僅供學(xué)習(xí)、參考使用,請勿用于其他用途,如果想商業(yè)使用或者代理,請自行聯(lián)系版權(quán)方獲取授權(quán)。任何未獲取授權(quán)的商業(yè)使用與本站無關(guān),請自行承擔(dān)相應(yīng)責(zé)任。
本站不存儲任何資源文件,敬請周知!
如果您認(rèn)為本頁信息內(nèi)容侵犯了您的相關(guān)權(quán)益(包含但不限于:著作權(quán)、首發(fā)權(quán)、隱私權(quán)等權(quán)利),或者您認(rèn)為自己是此信息的權(quán)利人但是此信息不是自己發(fā)布的,可以直接版權(quán)舉報(bào)投訴,我們會根據(jù)網(wǎng)站注冊協(xié)議、資源分享協(xié)議等協(xié)議處理,以保護(hù)您的合法權(quán)益。
本網(wǎng)站采用 BY-NC-SA 協(xié)議進(jìn)行授權(quán) 轉(zhuǎn)載請注明原文鏈接:[Python爬蟲]---Django視頻教程

侵權(quán)舉報(bào)/版權(quán)申訴



