幾種最受歡迎的Python開源框架

從GitHub中整理出的一些最受歡迎的Python開源框架。這些框架包括事件I/O,OLAP,Web開發,高性能網絡通信,測試,爬蟲等。

幾種最受歡迎的Python開源框架

Django:PythonWeb應用開發框架

Django應該是最出名的Python框架,是一個開放源代碼的Web應用框架,採用了MTV的框架模式,即模型M,模板T和視圖V。Django是走大而全的方向,它最出名的是其全自動化的管理後臺:只需要使用起ORM,做簡單的對象定義,它就能自動生成數據庫結構、以及全功能的管理後臺。

Django的優勢之一是隻需要單獨的安裝包來安裝。其他的一些類似的框架需要下載很多組件才能開始工作。而且,Django還有完善的保持更新的文檔。

Diesel:基於Greenlet的事件I/O框架

Diesel提供一個整潔的API來編寫網絡客戶端和服務器。支持TCP和UDP。非阻塞I/O使得diesel非常快速並且容易擴展,提供一個整潔的API來編寫網絡客戶端和服務器。

Flask:一個用Python編寫的輕量級Web應用框架

其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2 。Flask使用 BSD 授權。 Flask也被稱為 “microframework” ,因為它使用簡單的核心,用 extension 增加其他功能。Flask沒有默認使用的數據庫、窗體驗證工具。

Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。Flask 框架學會以後,可以考慮學習插件的使用。例如使用 WTForm + Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的數據庫進行控制。

Flask有以下特點:

  • 內建的單元測試支持
  • 模板使用Jinjia2
  • 大量文檔
  • 客戶端會話使用安全cookies
  • 開發服務器和調試器
  • Restful請求
  • 與WSGI 1.0兼容
  • 基於unicode
  • 大量的擴展Flask是一個年輕的框架,2010年誕生,Flask的目標是不給程序員強加限制,允許你使用自己的數據庫對象關係映射,模板引擎,會話中間件以及你的項目所需的其他組件,在我看來這就是這個微框架的用意。我想說像Flask這樣的框架更適合有經驗的開發者,並不是小規模應用程序所必須的,當然,如果你只想做一個簡單的REST API,那麼Flask當然再好不過了。

Cubes:輕量級PythonOLAP框架

Cubes是一個輕量級Python框架,包含OLAP、多維數據分析和瀏覽聚合數據(aggregateddata)等工具。

Kartograph.py:創造矢量地圖的輕量級Python框架

Kartograph是一個Python庫,用來為ESRI生成SVG地圖。Kartograph.py目前仍處於beta階段,你可以在virtualenv環境下來測試。

Pulsar:Python的事件驅動併發框架

是一個來自eBay的高擴展性、高可用性、基於事件驅動的開源實時分析平臺和流處理框架,它能夠實時收集和處理用戶行為和業務事件。有了pulsar,你可以寫出在不同進程或線程中運行一個或多個活動的異步服務器。

Web2py:全棧式Web框架

Web2py是一個為Python語言提供的全功能Web應用框架,允許開發者快速創建動態交互式的網站。它的設計目標是消除拖慢開發的大量重複編程任務,比如創建基本的表格,在最初是作為工具開發的。旨具有快速、安全以及可移植的數據庫驅動的應用,兼容GoogleAppEngine。

web2py的一些優點包括:

  • 容易使用——作為一個魯棒的全棧式框架,它無需其他依賴就可以工作,容易學習和部署,安裝也無需任何配置文件,一旦下載完成,安裝完畢,就可以用了。開發者會獲得一個數據庫,一個基於web的IDE,web服務器以及一個有多個核心對象組成的強大API。
  • 安全性出色——Web2py的模板語言減少了黑客使用跨站腳本的危險,抽象層在創建表單時有表單域有效性檢查,避免SQL注入,也阻止了跨站請求偽造攻擊(csrf攻擊)。會話被存儲在服務器上,阻止壞的執行者把瀏覽器cookie弄亂,並且每個密碼都是哈希後存儲的。

web2py的一些缺點包括:

  • 在常規基礎上使用管理的接口不太容易
  • 管理的接口沒有權限
  • 沒有內建的單元測試支持
  • 開發速度迅速,所有的函數都有缺省行為,表單時自動生成的,高層次的小部件和應用網格都是內建的。

Falcon:構建雲API和網絡應用後端的高性能Python框架

Falcon是一個構建雲API的高性能Python框架,它鼓勵使用REST架構風格,儘可能以最少的力氣做最多的事情。

Dpark:Python版的Spark

DPark是Spark的Python克隆,是一個Python實現的分佈式計算框架,可以非常方便地實現大規模數據處理和迭代計算。DPark由豆瓣實現,目前豆瓣內部的絕大多數數據分析都使用DPark完成,正日趨完善。

Buildbot:基於Python的持續集成測試框架

Buildbot是一個開源框架,可以自動化軟件構建、測試和發佈等過程。每當代碼有改變,服務器要求不同平臺上的客戶端立即進行代碼構建和測試,收集並報告不同平臺的構建和測試結果。

Zerorpc:基於ZeroMQ的高性能分佈式RPC框架

Zerorpc是一個基於ZeroMQ和MessagePack開發的遠程過程調用協議(RPC)實現。和Zerorpc一起使用的ServiceAPI被稱為zeroservice。Zerorpc可以通過編程或命令行方式調用。

Bottle:微型PythonWeb框架

Bottle是一個簡單高效的遵循WSGI的微型pythonWeb框架。說微型,是因為它只有一個文件,除Python標準庫外,它不依賴於任何第三方模塊。

Tornado:異步非阻塞IO的PythonWeb框架

Tornado的全稱是ToradoWebServer,是一種 Web 服務器軟件的開源版本,同時也是一個PythonWeb的開發框架。Tornado 和現在的主流 Web 服務器框架(包括大多數 Python 的框架)有著明顯的區別:它是非阻塞式服務器,而且速度相當快。 得利於其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,因此 Tornado 是實時 Web 服務的一個 理想框架。

特點:

  • 作為Web框架,是一個輕量級的Web框架,類似於另一個Python web框架Web.py,其擁有異步非阻塞IO的處理方式。
  • 作為Web服務器,Tornado有較為出色的抗負載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應用框架進行對比,結果最大瀏覽量超過第二名近40%。

webpy:輕量級的PythonWeb框架

webpy的設計理念力求精簡(Keepitsimpleandpowerful),源碼很簡短,只提供一個框架所必須的東西,不依賴大量的第三方模塊,它沒有URL路由、沒有模板也沒有數據庫的訪問。

Scrapy:Python的爬蟲框架

Scrapy是一個使用Python編寫的,輕量級的,簡單輕巧,並且使用起來非常的方便

Numpy:開源的Python科學計算庫

是一個開源的、高性能的Python數值計算庫為提高運算效率,提供了python對多維數組對象的支持:ndarray,具有矢量運算能力,快速、節省空間。numpy支持高級大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。

成都加米穀大數據培訓機構,大數據開發、數據分析與挖掘新課諮詢中。


分享到:


相關文章: