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

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

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

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

1. Django

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

2. Flask

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

3. Tornado

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

4. Webpy

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

5. Bottle

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

6. Karrigell

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

7. CherryPy

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

8. Pylons

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

10. TurboGears

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

11. Twisted

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


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


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


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