Python是一門動(dòng)態(tài)杭朱、面向?qū)ο笳Z言阅仔。其最初就是作為一門面向?qū)ο笳Z言設(shè)計(jì)的,并且在后期又加入了一些更高級(jí)的特性弧械。除了語言本身的設(shè)計(jì)目的之外八酒,Python標(biāo)準(zhǔn)庫(kù)也是值得大家稱贊的,Python甚至還自帶服務(wù)器刃唐。其它方面羞迷,Python擁有足夠多的免費(fèi)數(shù)據(jù)函數(shù)庫(kù)、免費(fèi)的Web網(wǎng)頁模板系統(tǒng)画饥、還有與Web服務(wù)器進(jìn)行交互的庫(kù)衔瓮、這些都可以設(shè)計(jì)到你的Web應(yīng)用程序里面。在這篇文章里抖甘,我們將為Python Web開發(fā)者介紹基于Python的10大Web應(yīng)用框架热鞍。
CubicWeb
CubicWeb的最重要的支柱就是代碼的可重用性。CubicWeb宣揚(yáng)自己不僅是一個(gè)Web開發(fā)框架衔彻,而且還是一款語義Web開發(fā)框架薇宠。CubicWeb使用關(guān)系查詢語言(RQL?Relation Query Language)與數(shù)據(jù)庫(kù)之間進(jìn)行通信。
Zope2
Zope 2是一款基于Python的Web應(yīng)用框架艰额,是所有Python Web應(yīng)用程序澄港、工具的鼻祖,是Python家族一個(gè)強(qiáng)有力的分支柄沮。Zope2的“對(duì)象發(fā)布”系統(tǒng)非常適合面向?qū)ο箝_發(fā)方法回梧,并且可以減輕開發(fā)者的學(xué)習(xí)曲線,還可以幫助你發(fā)現(xiàn)應(yīng)用程序里一些不好的功能祖搓。
Web2py
Web2py是一個(gè)用Python語言編寫的免費(fèi)的開源Web框架漂辐,旨在敏捷快速的開發(fā)Web應(yīng)用,具有快速棕硫、可擴(kuò)展、安全以及可移植的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的應(yīng)用袒啼,遵循LGPLv3開源協(xié)議哈扮。
Web2py提供一站式的解決方案,整個(gè)開發(fā)過程都可以在瀏覽器上進(jìn)行蚓再,提供了Web版的在線開發(fā)滑肉,HTML模版編寫,靜態(tài)文件的上傳摘仅,數(shù)據(jù)庫(kù)的編寫的功能靶庙。其它的還有日志功能,以及一個(gè)自動(dòng)化的admin接口娃属。
TurboGears
它是另外一個(gè)基于 Python 的 MVC 風(fēng)格的 Web 應(yīng)用程序框架六荒。
TurboGears 開發(fā)人員稱這個(gè)項(xiàng)目是一個(gè) “大框架(megaframework)”护姆,這是因?yàn)樗怯涩F(xiàn)有的子項(xiàng)目構(gòu)成的。TurboGears
可以幫助將很多主要組件集成在一起:
●MochiKit:JavaScript 庫(kù)
●Kid:模板語言
●CherryPy:基本 Web 框架
●SQLObject:對(duì)象關(guān)系映射器(ORM)
Pylons
Pylons是一個(gè)開放源代碼的Web應(yīng)用框架掏击,使用python語言編寫卵皂。它對(duì)WSGI標(biāo)準(zhǔn)進(jìn)行了擴(kuò)展應(yīng)用,提升了重用性且將功能分割到獨(dú)立的模塊中砚亭。
Pylons是最新的Web應(yīng)用框架中的典型灯变,類似于Django和TurboGears。Pylons受Ruby on?Rails影響很深:它的兩個(gè)組件捅膘,Routes和WebHelpers是Rails特性的Python實(shí)現(xiàn)添祸。
Grok
Grok 是一個(gè)為 Python 開發(fā)者提供的Web應(yīng)用開發(fā)框架,Grok 的重點(diǎn)是敏捷開發(fā)寻仗,是一個(gè)易用而且功能強(qiáng)大的開發(fā)框架刃泌,基于 Zope 3?技術(shù)。
Web.py
Web.py是一個(gè)輕量級(jí)的開源Python?Web框架愧沟,小巧靈活蔬咬、簡(jiǎn)單并且非常強(qiáng)大,在使用時(shí)沒有任何限制沐寺。目前Web.py被廣泛運(yùn)用在許多大型網(wǎng)站林艘,如西班牙的社交網(wǎng)站Frinki、主頁日平均訪問量達(dá)7000萬次的Yandex等混坞。
Pyramid
Pyramid也是一款輕量級(jí)的開源Python Web框架狐援,是Pylons項(xiàng)目的一部分。Pyramid只能運(yùn)行在Python2.x或2.4以后的版本上究孕。在使用后端數(shù)據(jù)庫(kù)時(shí)無需聲明啥酱,在開發(fā)時(shí)也不會(huì)強(qiáng)制使用一些特定的模板系統(tǒng)。
CherryPy
CherryPy是一個(gè)基于Python的Web使用程序開發(fā)框架厨诸,它極大地簡(jiǎn)化了運(yùn)用 Python的web開發(fā)人員的工作镶殷。它為Python開發(fā)人員提供了友好的HTTP協(xié)議接口。大家知道微酬,HTTP可是萬維網(wǎng)的支柱協(xié)議绘趋,而CherryPy將HTTP協(xié)議簡(jiǎn)化成PythonAPI來供Python開發(fā)人員使用,這極大地簡(jiǎn)化了Web開發(fā)人員對(duì)HTTP協(xié)議的操作颗管。
CherryPy自身內(nèi)置了一個(gè)HTTP服務(wù)器陷遮,或者稱為Web服務(wù)器。這樣垦江,對(duì)于CherryPy的用戶來說帽馋,不用另外搭設(shè)Web服務(wù)器就能直接運(yùn)行CherryPy應(yīng)用程序了。實(shí)際上,Web服務(wù)器是到達(dá)CherryPy應(yīng)用程序的關(guān)口绽族,是所有的HTTP請(qǐng)求和響應(yīng)的必經(jīng)之地姨涡。因此,可以這樣理解CherryPy內(nèi)建的Web服務(wù)器:它是位于處理客戶端與服務(wù)器端之間的一層軟件项秉,用于把底層TCP套按字傳輸?shù)男畔⑥D(zhuǎn)換成Http請(qǐng)求绣溜,并傳遞給相應(yīng)的處理程序;同時(shí),還把上層軟件傳來的信息打包成Http響應(yīng)娄蔼,并向下傳遞給底層的TCP套按字怖喻。
Flask
Flask是一個(gè)輕量級(jí)的Web應(yīng)用框架, 使用Python編寫∷晁撸基于 WerkzeugWSGI工具箱和 Jinja2模板引擎锚沸。使用 BSD授權(quán)。
Flask也被稱為 “microframework” 涕癣,因?yàn)樗褂煤?jiǎn)單的核心哗蜈,用 extension增加其他功能。Flask沒有默認(rèn)使用的數(shù)據(jù)庫(kù)坠韩、窗體驗(yàn)證工具距潘。然而,F(xiàn)lask保留了擴(kuò)增的彈性只搁,可以用Flask-extension加入這些功能:ORM音比、窗體驗(yàn)證工具、文件上傳氢惋、各種開放式身份驗(yàn)證技術(shù)洞翩。