Python各種WEB框架簡介

jopen 10年前發布 | 50K 次閱讀 Python Web框架

1    django

Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的。并于2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。

Django的主要目標是使得開發復雜的、數據庫驅動的網站變得簡單。Django注重組件的重用性和“可插拔性”,敏捷開發和DRY法則(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和數據模型。

Django 于 2008年6月17日正式成立基金會。

2    TurboGears

一套組合框架,HTTP處理使用cherrypy,ORM可以使用SQLObject或SQLAlchemy,模板系統默認為kid,可以更換。作為一套組合框架,有著很多個不同的組件。從TG的哲學上講這叫不重新發明輪子。但是從我Pylons的經驗來看,使得各個組件可以和諧的工作在一起也是很困難的。至少我就曾經因為差不多的Pylons使用的某個組件更新版本的差異最終放棄了Pylons。

TurboGears的優點很明顯,有大部頭的書,文檔豐富。另外,就是其版本已經到了1.0.3了,穩定性值得信賴,另外對于開源軟家來說,1.0以上的版本意味著接口的穩定。從表格中可以看出,國內用TG的人很少。我最初對TG的好感也僅限于用過CherryPy一段時間。

3    Zope

Python中的巨無霸WEB開發框架,曾經是絕對的選擇,后來么,因為學習成本的問題而使用略少了一些。對于初學者不太推薦,因為稍微重量級了一點,可以對比J2EE。至于穩定性,據說很多國外政府和軍隊的網站在用。而且基于Zope開發的Plone是世界排名第三位的CMS系統。文檔么,有中文的書籍支持,英文的更不必說。當然,Zope也是一套組合的框架,一些在Python WEB開發方面的機制當初都是Zope開創的,另外在面向對象數據庫等方面,Zope也擁有領先的優勢。

如果將來要做Python的企業級WEB開發,絕對推薦。

4    CherryPy

一套比較簡單的WEB開發框架,只含有WEB開發框架。開發很簡單,是并不算是方便,因為ORM和模板等等需要自己來選擇和配置。比較適合開發實驗系統或為其他應用提供一個WEB管理界面。

如果需要學習TurboGears也推薦先從CherryPy學起,這樣很多內部機制就好理解了。

5    Pylons

http://pylonsproject.org/

Pylons 是一個開放源代碼的Web應用框架,使用 Python 語言編寫。它對 WSGI 標準進行了擴展應用,提升了重用性且將功能分割到獨立的模塊中。

Pylons是最新的Web應用框架中的典型,類似于 Django 和 TurboGears。Pylons 受 Ruby on Rails 影響很深:它的兩個組件,Routes 和 WebHelpers 是 Rails 特性的 Python 實現。

6    web.py

一套非常簡單的框架,不過并不是非常簡潔。只提供WEB開發框架而沒有其他東西,但是內部做了對流行的ORM和模板系統的導入引用。使用方式在 WEB框架里面是比較獨特的,只需要把web.py這一個文件放到工程目錄里面帶走即可,到其他機器上運行時也無需安裝,直接可以使用。因此更加適合做其他系統的WEB管理界面。

如果有興趣推薦讀一下web.py的代碼,里面有很多先進的思想對未來的編程很有幫助。

7    Twisted

Twisted是一套巨無霸的網絡編程框架,其WEB開發不過是HTTP協議實現的一個附帶功能,如果希望了解足夠深的底層知識并控制這些底層細節,那么推薦。因為連HTTP協議的某些細節你都要照顧到。

所以呢,如果你希望提供一些超高性能的WEB接口,比如AJAX應用,XMLRPC服務器等等,那么強烈推薦,因為這個東東真的是太快了。在我的測試中AMD64 x2的機器用apache ab測試,100并發時每秒可以處理1500個HTTP請求。這速度已經沒得挑了。

8    mod_python

apache-httpd服務器的Python解釋器插件,允許直接控制apache服務器來提供WEB功能。速度比較快,但是速度不是強項。強項是穩定性,拖apache的福,在多進程中使用的mod_python穩定性巨牛無比,即便是死掉一個子進程對整體服務器也沒什么影響。但是 mod_python一般作為如上多種WEB開發框架的Apache-httpd的API接口來使用,提供高可靠性的服務器前端。至于直接用 mod_python編程呢,提供了PSP、publisher、自定義模塊等幾種方式。總體來說也不難,但是大家習慣了把它當底層了,所以也就沒人愿意學了。

mod_pathon 很久沒有更新了,建議使用modwsgi: http://code.google.com/p/modwsgi/

文檔方面,雖然google中文結果很少,但是卻又兩份官方文檔翻譯,這在這些框架里面文檔的權威性僅次于Zope。反倒是其他框架的中文資料里面 hello world滿天飛。國內現在僅有的兩家提供Python虛擬主機的,有一家就是專門做mod_python的,當然,另外一家專門做django。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!