今年年初,有一件科學(xué)界的大事兒曾刷爆朋友圈:引力波的發(fā)現(xiàn)。這是LIGO首次直接探測到引力波和首次觀測到雙黑洞碰撞與并合,探測到的引力波是由13億光年之外的兩顆黑洞在合并的最后階段產(chǎn)生的,經(jīng)過13億光年的時(shí)空旅行,最后被美國的“激光干涉引力波天文臺”(LIGO)的兩臺孿生引力波探測器探測到的。
雖然后期有人對此次“單次引力波發(fā)現(xiàn)”產(chǎn)生質(zhì)疑,但是在IT圈,它還捧火了一個(gè)一個(gè)東西:Python。今天我們就來看看,在GitHub等開源網(wǎng)站中最受歡迎的Python開源框架都有哪些?
1.Django()
Django是一款用Python語言寫的免費(fèi)開源的 Python Web應(yīng)用開發(fā)框架,它遵循模型 -視圖-控制器(MVC)的架構(gòu)模式。它是由非營利Django維護(hù)軟件基金會(DSF)和3條款BSD許可下可用,鼓勵(lì)快速發(fā)展和實(shí)用的設(shè)計(jì)。
Django主頁
Django同時(shí)是一款在數(shù)據(jù)庫功能、后臺功能、末班系統(tǒng)、網(wǎng)址匹配、緩存系統(tǒng)等方面有“先天”優(yōu)勢的開源框架。它可以通過幾行簡單的代碼就讓你的網(wǎng)站擁有一個(gè)強(qiáng)大的后臺,輕松管理你的內(nèi)容;強(qiáng)大,易擴(kuò)展的模板系統(tǒng),設(shè)計(jì)簡易,代碼,樣式分開設(shè)計(jì),更容易管理;如果與memcached或其它的緩存系統(tǒng)聯(lián)用,更出色的表現(xiàn),更快的加載速度。
同時(shí),Django也可以與Jython運(yùn)行在任何J甲骨文的JAVA EE應(yīng)用服務(wù)器上;尤其在管理能力上十分突出。
2.Twisted()
Twisted是一款事件驅(qū)動(dòng)的網(wǎng)絡(luò)編程框架,支持許多常見的傳輸及應(yīng)用層協(xié)議,如TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。還支持Unix domain sockets,在MIT許可下應(yīng)用。
Twisted附帶了一個(gè)可以web服務(wù)器上運(yùn)行的WSGI,它能夠?yàn)槠渌鸓ython web應(yīng)用程序允許開發(fā)人員使用的服務(wù)器定制HTTP服務(wù)。
Twisted事件驅(qū)動(dòng)框架
據(jù)了解,Twisted誕生于2000年初,在當(dāng)時(shí)的網(wǎng)絡(luò)游戲開發(fā)者看來,無論他們使用哪種語言,手中都鮮有可兼顧擴(kuò)展性及跨平臺的網(wǎng)絡(luò)庫。如今,Twisted依然屬于一個(gè)事件驅(qū)動(dòng)型的網(wǎng)絡(luò)引擎,這里程序的執(zhí)行流由外部事件來決定。
3.Tornado()
Tornado源意為龍卷風(fēng),這里是一款可擴(kuò)展的,非阻塞的Web服務(wù)器,應(yīng)用開發(fā)框架,以及異步聯(lián)網(wǎng)庫。它最初是在FriendFeed開發(fā)(在2009年被Facebook收購)。Tornado是高度靈活,專門設(shè)計(jì)為開發(fā)人員和第三方工具廠商提供了一個(gè)開放環(huán)境。已有部分應(yīng)用程序接口可以利用并附帶參考書目,內(nèi)容從開發(fā)環(huán)境接口到連接實(shí)現(xiàn)。另外,它還配備了一個(gè)WSGI服務(wù)器,其他WSGI Python應(yīng)用程序(和框架)也可以使用。在開源和Apache 2.0許可下可用。
Tornado主頁
有開發(fā)者認(rèn)為,Tornado既是一個(gè)web server,也是web framework。而它作為web server 采用的是asynchronous IO的網(wǎng)絡(luò)模型,這是一種很高效的模型。Tornado作為web server,提供了web framework的api,可以來直接構(gòu)建自己的web程序。
自從2009年9月10日發(fā)布以來,TornadoTornado已經(jīng)獲得了很多社區(qū)的支持,并且在一系列不同的場合得到應(yīng)用。除FriendFeed和Facebook外,還有很多公司在生產(chǎn)上轉(zhuǎn)向Tornado,包括Quora、Turntable.fm、Bit.ly、Hipmunk以及MyYearbook等。
除了以上三種之外,還有Diesel、Flask、Cubes、Kartograph、Pulsar、Web2py、Falcon、DPark、Buildbot、Zerorpc、Bottle、webpy、Scrapy還有很多用于機(jī)器學(xué)習(xí)應(yīng)用場景的開源框架,筆者在這里就不一一介紹了。