更新時(shí)間:2017-12-21 來源:黑馬程序員 瀏覽量:
Python的一個(gè)重要應(yīng)用領(lǐng)域就是Web開發(fā),各方大牛為了讓其開發(fā)更輕松簡(jiǎn)便,編寫了眾多Web框架,下面我們就來認(rèn)識(shí)一下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ū)動(dòng)的網(wǎng)站變得簡(jiǎn)單。Django注重組件的重用性和“可插拔性”,敏捷開發(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沒有默認(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收購(gòu)以后框架以開源軟件形式開放給大眾。作為Web框架,是一個(gè)輕量級(jí)的Web框架,類似于另一個(gè)Python web 框架Web.py,其擁有異步非阻塞IO的處理方式。作為Web服務(wù)器,Tornado有較為出色的抗負(fù)載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應(yīng)用框架進(jìn)行對(duì)比,結(jié)果最大瀏覽量超過第二名近40%。
4. Webpy
web.py 是一個(gè)輕量級(jí)Python web框架,它簡(jiǎn)單而且功能強(qiáng)大。web.py是一個(gè)開源項(xiàng)目。該框架由美國(guó)作家、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,卻自帶了路徑映射、模板、簡(jiǎn)單的數(shù)據(jù)庫訪問等web框架組件,確實(shí)是個(gè)可用的框架。初學(xué)web開發(fā)可以拿來玩玩,其語法簡(jiǎn)單,部署也很方便。
6. Karrigell
簡(jiǎn)單的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語言編寫。它對(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è)開源面向?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開發(fā)架構(gòu)。采用組件和接口技術(shù),實(shí)現(xiàn)Web應(yīng)用的快速開發(fā)和布署。
10. TurboGears
TurboGears是一個(gè)提供網(wǎng)頁前端到后端整合的網(wǎng)站框架,使用Python動(dòng)態(tài)語言。Python語言上有無數(shù)網(wǎng)頁開發(fā)模組可選擇。要挑選合適的模組會(huì)花上開發(fā)者寶貴的時(shí)間精力,TurboGears就像是Python網(wǎng)頁開發(fā)上的發(fā)布套件(Linux發(fā)行版),整合各種推薦的Python開放源代碼模組,提供簡(jiǎn)單易用的界面與一致的系統(tǒng)體驗(yàn)。TurboGears使用MVC的方式組織網(wǎng)站,提供網(wǎng)頁框架快速生成工具,開發(fā)中自動(dòng)即時(shí)重載的網(wǎng)頁服務(wù)器。
11. Twisted
Twisted是用Python實(shí)現(xiàn)的基于事件驅(qū)動(dòng)的網(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對(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/