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