首頁(yè)技術(shù)文章正文

Python Web開(kāi)發(fā)框架的十二大將

更新時(shí)間:2017-12-21 來(lái)源:黑馬程序員 瀏覽量:

Python的一個(gè)重要應(yīng)用領(lǐng)域就是Web開(kāi)發(fā),各方大牛為了讓其開(kāi)發(fā)更輕松簡(jiǎn)便,編寫了眾多Web框架,下面我們就來(lái)認(rèn)識(shí)一下Python Web開(kāi)發(fā)框架中的十二大將。

1. Django

Django是Python Web框架中應(yīng)用最多的,其開(kāi)放源代碼。采用了MVC的軟件設(shè)計(jì)模式,即模型M,視圖V和控制器C。它最初是被開(kāi)發(fā)來(lái)用于管理勞倫斯出版集團(tuán)旗下的一些以新聞內(nèi)容為主的網(wǎng)站的。并于2005年7月在BSD許可證下發(fā)布。這套框架是以比利時(shí)的吉普賽爵士吉他手Django Reinhardt來(lái)命名的。Django的主要目標(biāo)是使得開(kāi)發(fā)復(fù)雜的、數(shù)據(jù)庫(kù)驅(qū)動(dòng)的網(wǎng)站變得簡(jiǎn)單。Django注重組件的重用性和“可插拔性”,敏捷開(kāi)發(fā)和DRY法則(Don't Repeat Yourself)。

2. Flask

Flask是一個(gè)使用Python編寫的輕量級(jí)Web應(yīng)用框架?;赪erkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD授權(quán)。Flask也被稱為“microframework”,因?yàn)樗褂煤?jiǎn)單的核心,用extension增加其他功能。Flask沒(méi)有默認(rèn)使用的數(shù)據(jù)庫(kù)、窗體驗(yàn)證工具。然而,F(xiàn)lask保留了擴(kuò)增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗(yàn)證工具、文件上傳、各種開(kāi)放式身份驗(yàn)證技術(shù)。

3. Tornado

Tornado全稱Tornado Web Server,是一個(gè)用Python語(yǔ)言寫成的Web服務(wù)器兼Web應(yīng)用框架,由FriendFeed公司在自己的網(wǎng)站FriendFeed中使用,被Facebook收購(gòu)以后框架以開(kāi)源軟件形式開(kāi)放給大眾。作為Web框架,是一個(gè)輕量級(jí)的Web框架,類似于另一個(gè)Python web 框架Web.py,其擁有異步非阻塞IO的處理方式。作為Web服務(wù)器,Tornado有較為出色的抗負(fù)載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應(yīng)用框架進(jìn)行對(duì)比,結(jié)果最大瀏覽量超過(guò)第二名近40%。

4. Webpy

web.py 是一個(gè)輕量級(jí)Python web框架,它簡(jiǎn)單而且功能強(qiáng)大。web.py是一個(gè)開(kāi)源項(xiàng)目。該框架由美國(guó)作家、Reddit聯(lián)合創(chuàng)始人、RSS規(guī)格合作創(chuàng)造者、著名計(jì)算機(jī)黑客Aaron Swartz開(kāi)發(fā)。web.py目前已被很多家大型網(wǎng)站所使用。

5. Bottle

Bottle是一個(gè)Python Web框架,整個(gè)框架只有一個(gè)文件,幾十K,卻自帶了路徑映射、模板、簡(jiǎn)單的數(shù)據(jù)庫(kù)訪問(wèn)等web框架組件,確實(shí)是個(gè)可用的框架。初學(xué)web開(kāi)發(fā)可以拿來(lái)玩玩,其語(yǔ)法簡(jiǎn)單,部署也很方便。

6. Karrigell

簡(jiǎn)單的Web框架,自身包含了Web服務(wù),py腳本引擎和純python的數(shù)據(jù)庫(kù)PyDBLite。

7. CherryPy

CherryPy是一個(gè)Pythonic的面向?qū)ο蟮膚eb框架,其允許開(kāi)發(fā)者以與構(gòu)建其他面向?qū)ο蟮膒ython程序一樣的方式來(lái)構(gòu)建web應(yīng)用,以至可以用最少的時(shí)間開(kāi)發(fā)出最精巧的源代碼。CherryPy現(xiàn)今已超過(guò)10年,被證明是非常高效和穩(wěn)定的。

8. Pylons

Pylons是一個(gè)開(kāi)放源代碼的Web應(yīng)用框架,使用Python語(yǔ)言編寫。它對(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)。

9. Zope

Zope是一個(gè)開(kāi)源面向?qū)ο蟮膚eb應(yīng)用服務(wù)器,用Python寫成。Zope代表著“Z對(duì)象發(fā)布環(huán)境(Z Object Publishing Environment)”,并且是第一個(gè)系統(tǒng)使用了新的通用對(duì)象發(fā)布方法的框架。Zope已經(jīng)被認(rèn)為是一個(gè)Python的殺手級(jí)應(yīng)用,一個(gè)幫助Python走到聚光燈下的應(yīng)用。Zope3已發(fā)布,這是一個(gè)全新設(shè)計(jì)的Web開(kāi)發(fā)架構(gòu)。采用組件和接口技術(shù),實(shí)現(xiàn)Web應(yīng)用的快速開(kāi)發(fā)和布署。

10. TurboGears

TurboGears是一個(gè)提供網(wǎng)頁(yè)前端到后端整合的網(wǎng)站框架,使用Python動(dòng)態(tài)語(yǔ)言。Python語(yǔ)言上有無(wú)數(shù)網(wǎng)頁(yè)開(kāi)發(fā)模組可選擇。要挑選合適的模組會(huì)花上開(kāi)發(fā)者寶貴的時(shí)間精力,TurboGears就像是Python網(wǎng)頁(yè)開(kāi)發(fā)上的發(fā)布套件(Linux發(fā)行版),整合各種推薦的Python開(kāi)放源代碼模組,提供簡(jiǎn)單易用的界面與一致的系統(tǒng)體驗(yàn)。TurboGears使用MVC的方式組織網(wǎng)站,提供網(wǎng)頁(yè)框架快速生成工具,開(kāi)發(fā)中自動(dòng)即時(shí)重載的網(wǎng)頁(yè)服務(wù)器。

11. Twisted

Twisted是用Python實(shí)現(xiàn)的基于事件驅(qū)動(dòng)的網(wǎng)絡(luò)引擎框架。Twisted支持許多常見(jiàn)的傳輸及應(yīng)用層協(xié)議,包括TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。就像Python一樣,Twisted也具有“內(nèi)置電池”(batteries-included)的特點(diǎn)。Twisted對(duì)于其支持的所有協(xié)議都帶有客戶端和服務(wù)器實(shí)現(xiàn),同時(shí)附帶有基于命令行的工具,使得配置和部署產(chǎn)品級(jí)的Twisted應(yīng)用變得非常方便。

12. Quixote

Quixote是一個(gè)用Python編寫基于Web的應(yīng)用的框架。其目標(biāo)是靈活而高效。兩個(gè)主要版本v1和v2相似但是互不兼容,但都在維護(hù),并被眾多公共網(wǎng)站使用。


本文版權(quán)歸黑馬程序員人工智能+Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!


作者:黑馬程序員人工智能+Python培訓(xùn)學(xué)院


首發(fā):http://python.itheima.com/


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!