更新時間:2017-12-21 來源:黑馬程序員 瀏覽量:
Python的一個重要應(yīng)用領(lǐng)域就是Web開發(fā),各方大牛為了讓其開發(fā)更輕松簡便,編寫了眾多Web框架,下面我們就來認識一下Python Web開發(fā)框架中的十二大將。
1. Django
Django是Python Web框架中應(yīng)用最多的,其開放源代碼。采用了MVC的軟件設(shè)計模式,即模型M,視圖V和控制器C。它最初是被開發(fā)來用于管理勞倫斯出版集團旗下的一些以新聞內(nèi)容為主的網(wǎng)站的。并于2005年7月在BSD許可證下發(fā)布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。Django的主要目標是使得開發(fā)復(fù)雜的、數(shù)據(jù)庫驅(qū)動的網(wǎng)站變得簡單。Django注重組件的重用性和“可插拔性”,敏捷開發(fā)和DRY法則(Don't Repeat Yourself)。
2. Flask
Flask是一個使用Python編寫的輕量級Web應(yīng)用框架。基于Werkzeug WSGI工具箱和Jinja2 模板引擎。 Flask使用BSD授權(quán)。Flask也被稱為“microframework”,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的數(shù)據(jù)庫、窗體驗證工具。然而,F(xiàn)lask保留了擴增的彈性,可以用Flask-extension加入這些功能:ORM、窗體驗證工具、文件上傳、各種開放式身份驗證技術(shù)。
3. Tornado
Tornado全稱Tornado Web Server,是一個用Python語言寫成的Web服務(wù)器兼Web應(yīng)用框架,由FriendFeed公司在自己的網(wǎng)站FriendFeed中使用,被Facebook收購以后框架以開源軟件形式開放給大眾。作為Web框架,是一個輕量級的Web框架,類似于另一個Python web 框架Web.py,其擁有異步非阻塞IO的處理方式。作為Web服務(wù)器,Tornado有較為出色的抗負載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應(yīng)用框架進行對比,結(jié)果最大瀏覽量超過第二名近40%。
4. Webpy
web.py 是一個輕量級Python web框架,它簡單而且功能強大。web.py是一個開源項目。該框架由美國作家、Reddit聯(lián)合創(chuàng)始人、RSS規(guī)格合作創(chuàng)造者、著名計算機黑客Aaron Swartz開發(fā)。web.py目前已被很多家大型網(wǎng)站所使用。
5. Bottle
Bottle是一個Python Web框架,整個框架只有一個文件,幾十K,卻自帶了路徑映射、模板、簡單的數(shù)據(jù)庫訪問等web框架組件,確實是個可用的框架。初學(xué)web開發(fā)可以拿來玩玩,其語法簡單,部署也很方便。
6. Karrigell
簡單的Web框架,自身包含了Web服務(wù),py腳本引擎和純python的數(shù)據(jù)庫PyDBLite。
7. CherryPy
CherryPy是一個Pythonic的面向?qū)ο蟮膚eb框架,其允許開發(fā)者以與構(gòu)建其他面向?qū)ο蟮膒ython程序一樣的方式來構(gòu)建web應(yīng)用,以至可以用最少的時間開發(fā)出最精巧的源代碼。CherryPy現(xiàn)今已超過10年,被證明是非常高效和穩(wěn)定的。
8. Pylons
Pylons是一個開放源代碼的Web應(yīng)用框架,使用Python語言編寫。它對WSGI標準進行了擴展應(yīng)用,提升了重用性且將功能分割到獨立的模塊中。Pylons是最新的Web應(yīng)用框架中的典型,類似于Django和TurboGears。Pylons受Ruby on Rails影響很深:它的兩個組件,Routes和WebHelpers是Rails特性的Python實現(xiàn)。
9. Zope
Zope是一個開源面向?qū)ο蟮膚eb應(yīng)用服務(wù)器,用Python寫成。Zope代表著“Z對象發(fā)布環(huán)境(Z Object Publishing Environment)”,并且是第一個系統(tǒng)使用了新的通用對象發(fā)布方法的框架。Zope已經(jīng)被認為是一個Python的殺手級應(yīng)用,一個幫助Python走到聚光燈下的應(yīng)用。Zope3已發(fā)布,這是一個全新設(shè)計的Web開發(fā)架構(gòu)。采用組件和接口技術(shù),實現(xiàn)Web應(yīng)用的快速開發(fā)和布署。
10. TurboGears
TurboGears是一個提供網(wǎng)頁前端到后端整合的網(wǎng)站框架,使用Python動態(tài)語言。Python語言上有無數(shù)網(wǎng)頁開發(fā)模組可選擇。要挑選合適的模組會花上開發(fā)者寶貴的時間精力,TurboGears就像是Python網(wǎng)頁開發(fā)上的發(fā)布套件(Linux發(fā)行版),整合各種推薦的Python開放源代碼模組,提供簡單易用的界面與一致的系統(tǒng)體驗。TurboGears使用MVC的方式組織網(wǎng)站,提供網(wǎng)頁框架快速生成工具,開發(fā)中自動即時重載的網(wǎng)頁服務(wù)器。
11. Twisted
Twisted是用Python實現(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)的特點。Twisted對于其支持的所有協(xié)議都帶有客戶端和服務(wù)器實現(xiàn),同時附帶有基于命令行的工具,使得配置和部署產(chǎn)品級的Twisted應(yīng)用變得非常方便。
12. Quixote
Quixote是一個用Python編寫基于Web的應(yīng)用的框架。其目標是靈活而高效。兩個主要版本v1和v2相似但是互不兼容,但都在維護,并被眾多公共網(wǎng)站使用。
本文版權(quán)歸黑馬程序員人工智能+Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員人工智能+Python培訓(xùn)學(xué)院
首發(fā):http://python.itheima.com/