1. 程式人生 > >給你飛速體驗的五大新型Python框架!

給你飛速體驗的五大新型Python框架!

更快、更簡單,更“Python化”——這就是Python生態系統中各類新型Web框架的終極訴求。雖然對各類選項進行一一嘗試也未嘗不可,但從Python2.x到Python3.x的巨大飛躍確實帶來了各種潛在改進空間,其中也包括一套完美適合網路框架庫的強大非同步事件。在今天的文章中,我們將介紹五款面向Python的新型Web與網路框架,它能夠切實提升速度表現、充分發揮突破性新特性,同時帶來實現新思路的更多可行途徑。

1.Sanic

Sanic的概念非常簡單:提供一套基於Flask語法的Web框架,但同時將Python 3.5及更高版本中的極速異布事件處理程式納入其中。結果就是,這款框架能夠將Flask原本的每秒4988項請求處理能力瞬間提升至33000項以上,而延遲亦削減至原本的十分之一。其中亦包含路由與中介軟體。我們還不清楚現有應用是否已經開始大規模利用Sanic替代Flask,但只要親身嘗試,大家就會發現其可觀的速度提升效果。

2.Eve

如果大家希望構建Web服務,並利用快速方法使用各類已知元件,那麼Eve正是為此而生。其利用Flask作為Web框架,同時可接入MongoDB、SQL-Alchemy、Elasticsearch或者Neo4js後端以實現資料訪問。該專案的開發者反覆強調其部署簡易性:要實現線上API,您只需要一套資料庫、一個配置檔案(預設為settings.py)以及一套啟動指令碼。

3.Morepath

Morepath宣稱其是一套“超級強大”的Python Web框架,且僅需要最低設定空間。其設計目標在於讓各類典型用例得以快速啟動與執行,其中包括將常見Python資料結構轉換為RESTful Web服務。其還擁有一項特殊功能:它能夠自動將Morepath中定義的路徑轉換為連結,從而創建出具備簡潔URL的應用。

4.ButterflyNet

如果大家希望擁有一套能夠預設實現非同步性與安全性的網路庫,那麼ButterflyNet絕對值得一試。其僅支援Python 3.5及更高版本,因為其使用asyncio庫以實現自身功能,但能夠僅利用十餘行程式碼即設定起伺服器併為其提供必要的證書與金鑰。感興趣的朋友可以點選此處檢視一套聊天室示例,僅需75行程式碼即可實現。

5.Uvloop

憑藉著“迅如閃電的Python網路”這一宣傳口號,我們實在很難忽視Uvloop的存在。Uvloop屬於asyncio事件迴圈的替代性方案,因此其既可作為全新基於asyncio應用的執行基礎,亦可在現有應用中直接替代asyncio。它還獲能夠與Python加速機制Cython進行協作,因此其關鍵部分程式碼實際上是由C語言編寫的。其締造者聲稱,它“在速度上至少比Node.js、gevent以及其它任何Python非同步框架快2倍”,不過大家最好實際測試以瞭解其具體效果。