自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

37 個(gè) Python Web 開(kāi)發(fā)框架總結(jié)

開(kāi)發(fā) 后端
作者用了 2 周的時(shí)間整理了 Python 中所有的網(wǎng)站開(kāi)發(fā)庫(kù)(下文簡(jiǎn)稱:Web 框架),供大家學(xué)習(xí)參考。

Q:Web 框架到底是什么?A:Web 框架主要用于網(wǎng)站開(kāi)發(fā)。開(kāi)發(fā)者在基于 Web 框架實(shí)現(xiàn)自己的業(yè)務(wù)邏輯。Web 框架實(shí)現(xiàn)了很多功能,為實(shí)現(xiàn)業(yè)務(wù)邏輯提供了一套通用方法。

Q:Web 框架有什么作用?A:使用 Web 框架,很多的業(yè)務(wù)邏輯外的功能不需要自己再去完善,而是使用框架已有的功能就可以。Web 框架使得在進(jìn)行 網(wǎng)站開(kāi)發(fā)的時(shí)候,減少了工作量。

Q:我們?yōu)槭裁匆褂?Web 框架?A:Web 框架主要用于網(wǎng)站開(kāi)發(fā),可以實(shí)現(xiàn)數(shù)據(jù)的交互和業(yè)務(wù)功能的完善。使用 Web 框架進(jìn)行 網(wǎng)站開(kāi)發(fā)的時(shí)候,在進(jìn)行數(shù)據(jù)緩存、數(shù)據(jù)庫(kù)訪問(wèn)、數(shù)據(jù)安全校驗(yàn)等方面,不需要自己再重新實(shí)現(xiàn),而是將業(yè)務(wù)邏輯相關(guān)的代碼寫入框架就可以。

庫(kù)排序是按照使用人數(shù)和文檔的活躍度為參考進(jìn)行的,建議大家使用排名靠前的框架,因?yàn)樗鼈兊奈臋n更齊全,技術(shù)積累要更多,社區(qū)更繁盛,能得到更好的支持,這樣在遇到自己無(wú)法解決的問(wèn)題,可以更快更高效的找到解答的方案。

1. Django 框架

官 網(wǎng):?https://github.com/django/django.git?

優(yōu) 點(diǎn):是一個(gè)高層次 Python Web 開(kāi)發(fā)框架,特點(diǎn)是開(kāi)發(fā)快速、代碼較少、可擴(kuò)展性強(qiáng)。Django 采用 MTV(Model、Template、View)模型組織資源,框架功能豐富,模板擴(kuò)展選擇最多。對(duì)于專業(yè)人員來(lái)說(shuō),Django 是當(dāng)之無(wú)愧的 Python 排名第一的 Web 開(kāi)發(fā)框架。

缺 點(diǎn):包括一些輕量級(jí)應(yīng)用不需要的功能模塊,不如 Flask 輕便。過(guò)度封裝很多類和方法,直接使用比較簡(jiǎn)單,但改動(dòng)起來(lái)比較困難。相比于 C,C++ 性能,Djang 性能偏低。模板實(shí)現(xiàn)了代碼和樣式完全分離,不允許模板里出現(xiàn) Python 代碼,靈活度不夠。另外學(xué)習(xí)曲線也相對(duì)陡峭。


2. Flask 框架

官 網(wǎng):?https://flask.palletsprojects.com/en/2.0.x/ 優(yōu) 點(diǎn):Flask 是一個(gè) Python Web 開(kāi)發(fā)的微框架,嚴(yán)格來(lái)說(shuō),它僅提供 Web 服務(wù)器支持,不提供全棧開(kāi)發(fā)支持。然而,F(xiàn)lask 非常輕量、非常簡(jiǎn)單,基于它搭建 Web 系統(tǒng)都以分鐘來(lái)計(jì)時(shí),特別適合小微原型系統(tǒng)的開(kāi)發(fā)?;ㄉ贂r(shí)間、產(chǎn)生可用系統(tǒng),是非常劃算的選擇。

缺 點(diǎn):對(duì)于大型網(wǎng)站開(kāi)發(fā),需要設(shè)計(jì)路由映射的規(guī)則,否則導(dǎo)致代碼混亂。對(duì)新手來(lái)說(shuō),容易使用低質(zhì)量的代碼創(chuàng)建 “不良的 web 應(yīng)用程序”。

?

3. Pyramid 框架

官 網(wǎng): ?https://trypyramid.com/?

優(yōu) 點(diǎn):是一個(gè)擴(kuò)展性很強(qiáng)且靈活的 Python Web 開(kāi)發(fā)框架。上手十分容易,比較適合中等規(guī)模且邊開(kāi)發(fā)邊設(shè)計(jì)的場(chǎng)景。Pyramid 不提供絕對(duì)嚴(yán)格的框架定義,根據(jù)需求可以擴(kuò)展開(kāi)發(fā),對(duì)高階程序員十分友好。

缺 點(diǎn):國(guó)內(nèi)知名度不高,高級(jí)用法需要通過(guò)閱讀源代碼獲取靈感。默認(rèn)使用 Chameleon 模板,靈活度沒(méi)有成為一個(gè)要素。

?

4. web.py 框架

官 網(wǎng):?https://webpy.org/?

優(yōu) 點(diǎn):正如其名,web.py 是一個(gè)采用 Python 作為開(kāi)發(fā)語(yǔ)言的 Web 框架,簡(jiǎn)單且強(qiáng)大。俄羅斯排名第一的 Yandex 搜索引擎基于這個(gè)框架開(kāi)發(fā),Guido van Rossum 認(rèn)為這是最好的 Python Web 框架,還需要說(shuō)別的嗎?有事實(shí)作證、有大牛認(rèn)可,用起來(lái)吧!

缺 點(diǎn):Web.py 并未像其他框架一樣保持與 Python 3 兼容性的最新?tīng)顟B(tài)。這不僅意味著缺乏對(duì)異步語(yǔ)法的支持,還意味著缺少對(duì)已棄用的函數(shù)的錯(cuò)誤。此外,目前尚不清楚維護(hù)者是否有計(jì)劃在 Python 2 到達(dá)其支持生命周期結(jié)束后保持 Web.py 的最新?tīng)顟B(tài)。

?

5. Tornado 框架

官 網(wǎng):?https://www.tornadoweb.org/en/stable/?

優(yōu) 點(diǎn):Tornado 是一個(gè)基于異步網(wǎng)絡(luò)功能庫(kù)的 Web 開(kāi)發(fā)框架,因此,它能支持幾萬(wàn)個(gè)開(kāi)放連接,Web 服務(wù)高效穩(wěn)定??梢?jiàn),Tornado 適合高并發(fā)場(chǎng)景下的 Web 系統(tǒng),開(kāi)發(fā)過(guò)程需要采用 Tornado 提供的框架,靈活性較差,確定場(chǎng)景后再考慮使用不遲。

缺 點(diǎn):Tornado 5.0 改進(jìn)了與 Python 的本機(jī)異步功能的集成。因此不再支持 Python 3.3,并且 Python 3.5 用戶必須使用 Python 3.5.2 或更高版本。Tornado 6.0 將需要 Python 3.5 及更高版本,并將完全放棄 Python 2 支持。

6. TurboGears 框架

官 網(wǎng)?https://www.turbogears.org/?

優(yōu) 點(diǎn):TurboGears 最新版本 試圖解決 TurboGears 最初版本、Django、Rails 等框架缺陷,它支持多數(shù)據(jù)庫(kù)、JavaScript 工具集、多種數(shù)據(jù)交換格式等,當(dāng)然,它開(kāi)發(fā)非常高效,擴(kuò)展性很強(qiáng)。試問(wèn)它與 Django 哪個(gè)更好?還真不好說(shuō),Django 社區(qū)更為活躍或許更重要。

缺 點(diǎn):TurboGears 的一些缺點(diǎn)包括管理功能較為基礎(chǔ),較少的第三方應(yīng)用程序以及只有初級(jí)的文檔。TurboGears 的一個(gè)重大挑戰(zhàn)是它的壓倒性。因?yàn)樗齑畹钠渌M件都提供無(wú)限的靈活性, 當(dāng)試圖決定何種路徑來(lái)完成一個(gè)任務(wù)時(shí)它是過(guò)于復(fù)雜的。

7. CherryPy 框架

官 網(wǎng)https://cherrypy.org/

優(yōu) 點(diǎn):CherryPy 能夠讓開(kāi)發(fā)者按照其他面向?qū)ο蟪绦蛳嗨频脑O(shè)計(jì)方法開(kāi)發(fā) Web 系統(tǒng),進(jìn)而采用最少的代碼、最簡(jiǎn)潔的方式。CherryPy 已經(jīng)開(kāi)發(fā)了 10 年之久,穩(wěn)定性較好,非常適合小規(guī)模 Web 系統(tǒng)和純粹的 Python 程序員。感受到了什么?Python 大有一統(tǒng)江湖之勢(shì)!拭目以待。

缺 點(diǎn):只包含為 web 頁(yè)面提供服務(wù)所需的少量?jī)?nèi)容外,它應(yīng)該盡可能地讓人感覺(jué)它不像 “web 框架”,而是像任何其他類型的 Python 應(yīng)用程序一樣。CherryPy 包含的位用作低級(jí)構(gòu)建塊。包括會(huì)話標(biāo)識(shí)符和 cookie 處理,但不包括 HTML 模板。像 Bottle 一樣,CherryPy 提供了一種將路由映射到磁盤上的目錄以供靜態(tài)文件服務(wù)的方法。

8. Falcon 框架

官 網(wǎng)http://falconframework.org/

優(yōu) 點(diǎn):Falcon 是一個(gè)支持大規(guī)模微服務(wù) API 或移動(dòng) App 后端響應(yīng)的 Web 開(kāi)發(fā)框架,它完全基于 Python 并提供了非常高的性能、可靠性和可擴(kuò)展性。Falcon 定位獨(dú)特且特色鮮明,對(duì)于 App 開(kāi)發(fā)者,后端系統(tǒng)構(gòu)建不妨考慮 Falcon,十之八九是不會(huì)后悔的。

缺 點(diǎn):Falcon 缺點(diǎn)是其打包模塊有點(diǎn)太少,有路由,中間件,鉤子,除此之外就不提供其他功能了(裸殼)。額外其他功能,比如驗(yàn)證等都需要開(kāi)發(fā)人員來(lái)開(kāi)發(fā)擴(kuò)展。因?yàn)槠湓O(shè)計(jì)中就假設(shè)用于構(gòu)建 REST API。

9. Asgineer 框架

官 網(wǎng):?https://asgineer.readthedocs.io/?

優(yōu) 點(diǎn):Asgineer 是一種編寫異步 Web 應(yīng)用程序的工具,使用盡可能少的抽象,同時(shí)仍然提供友好的 API。只需幾分鐘即可閱讀指南和參考資料!在 Uvicorn 上運(yùn)行 Asgineer 時(shí),它是可用的最快的 Web 框架之一。它支持 http 長(zhǎng)輪詢、服務(wù)器端事件 (SSE) 和 websockets。并且具有以正確(且快速)的方式為資產(chǎn)提供服務(wù)的實(shí)用程序。

缺 點(diǎn):中文文檔匱乏。

10. Bottle 框架

官 網(wǎng):?https://bottlepy.org/docs/dev/?

優(yōu) 點(diǎn):Bottle 是一個(gè)用于 Python 的快速、簡(jiǎn)單和輕量級(jí)的 WSGI 微型網(wǎng)絡(luò)框架。它作為單個(gè)文件模塊分發(fā),除了 Python 標(biāo)準(zhǔn)庫(kù)之外沒(méi)有任何依賴項(xiàng)。支持干凈和動(dòng)態(tài)的 URL??焖俸?Pythonic 內(nèi)置模板引擎,支持 mako、jinja2 和 cheetah 模板。方便地訪問(wèn)表單數(shù)據(jù)、文件上傳、cookie、標(biāo)題和其他與 HTTP 相關(guān)的元數(shù)據(jù)。

缺 點(diǎn):Bottle 極簡(jiǎn)主義的一個(gè)后果是有些功能根本就不存在。不支持表單驗(yàn)證,包括 CSRF 保護(hù)等功能。如果要構(gòu)建支持高度用戶交互的 Web 應(yīng)用程序,則需要自己添加它們。

11. Emmett 框架

官 網(wǎng):?https://emmett.sh/?

優(yōu) 點(diǎn):編寫優(yōu)雅的代碼,專注于您的產(chǎn)品,你應(yīng)該把更多的時(shí)間花在你的產(chǎn)品而不是底層框架上。Emmett 是發(fā)明家的框架,因?yàn)樗荚诤?jiǎn)化您的開(kāi)發(fā)過(guò)程,其語(yǔ)法簡(jiǎn)單、易于學(xué)習(xí)和理解。不要在路由器和不舒服的模式之間浪費(fèi)時(shí)間:每次為應(yīng)用程序?qū)懴侣酚蓵r(shí),一切都清楚地呈現(xiàn)在您的眼前。

缺 點(diǎn):中文文檔匱乏。

12. apidaora 框架

官 網(wǎng):?https://github.com/dutradda/apidaora?

優(yōu) 點(diǎn):使用類型注釋將請(qǐng)求 / 響應(yīng)聲明為數(shù)據(jù)類和字典,使用 jsondaora 驗(yàn)證輸入數(shù)據(jù),最快的 python api 框架之一,可以在任何 asgi 服務(wù)器上運(yùn)行。

缺 點(diǎn):中文文檔匱乏。

13. Quixote 框架

官 網(wǎng):?http://www.quixote.ca/?

優(yōu) 點(diǎn):Quixote 是一個(gè)使用 Python 編寫基于 Web 的應(yīng)用程序的框架。它的目標(biāo)是按此順序?qū)崿F(xiàn)靈活性和高性能。Quixote 應(yīng)用程序的結(jié)構(gòu)往往類似于傳統(tǒng)應(yīng)用程序。格式化網(wǎng)頁(yè)的邏輯由 Python 類和函數(shù)組成。Quixote 不強(qiáng)制分離表示邏輯和 “后端” 邏輯。相反,我們鼓勵(lì)您使用傳統(tǒng)技術(shù)。例如,一種解決方案是將表示邏輯放在其自己的子包中。

缺 點(diǎn):雖然 Quixote 得到積極維護(hù),但發(fā)布頻率較低。最近開(kāi)發(fā)的重點(diǎn)是修復(fù)錯(cuò)誤、提高標(biāo)準(zhǔn)合規(guī)性和增加 Quixote 的靈活性。

14. reahl 框架

官 網(wǎng):?https://www.reahl.org/?

優(yōu) 點(diǎn):reahl 是一個(gè)可以讓開(kāi)發(fā)者完全用 Python 語(yǔ)言編寫 Web 應(yīng)用的開(kāi)放框架,采用 Python 作為唯一開(kāi)發(fā)語(yǔ)言是其最大特色。此外,reahl 提供了相當(dāng)清晰且簡(jiǎn)明的開(kāi)發(fā)組建,對(duì)于開(kāi)發(fā)一般功能性 Web 系統(tǒng)足夠清晰且可行。

缺 點(diǎn):提供抽象詞匯時(shí),無(wú)法掌握一些更高級(jí)的用戶界面效果,目前不允許使用 Sass 構(gòu)建 Bootstrap 的修改版本,并支持更高級(jí)的用戶界面模式。

15. hug 框架

官 網(wǎng):?https://hug.rest/?

優(yōu) 點(diǎn):Hug 是一個(gè) Python 3 API 開(kāi)發(fā)框架。它的設(shè)計(jì)使軟件工程師可以一次開(kāi)發(fā) API,然后在需要時(shí)再使用它。Hug 框架通過(guò)提供各種接口來(lái)簡(jiǎn)化 API 開(kāi)發(fā)。這就是為什么該框架被稱為 Python 3 中最快的框架之一的主要原因。

缺 點(diǎn):它使用以前的 WSGI 標(biāo)準(zhǔn),這是一個(gè)同步框架,所以它不能處理像 WebSockets 和其他異步請(qǐng)求,不管怎么說(shuō),它仍然有非常好的性能表現(xiàn)。

16. BlackSheep 框架

官 網(wǎng):?https://github.com/Neoteroi/BlackSheep?

優(yōu) 點(diǎn):BlackSheep 是一個(gè)異步 Web 框架,用于使用 Python 構(gòu)建基于事件的 Web 應(yīng)用程序。它的靈感來(lái)自 Flask、ASP.NET Core 和 Yury Selivanov 的工作。

缺 點(diǎn):中文文檔匱乏。

17. Index.py 框架

官 網(wǎng)https://index-py.aber.sh/stable/

優(yōu) 點(diǎn):實(shí)現(xiàn)了 ASGI3 接口并使用 Radix Tree 進(jìn)行路由查找。是最快的 Python web 框架之一。一切特性都服務(wù)于快速開(kāi)發(fā)高性能的 Web 服務(wù)。大量正確的類型注釋,靈活且高效的路由系統(tǒng),可視化 API 接口與在線調(diào)試,支持 Server-sent events 與 WebSocket,自帶一鍵部署命令 (基于 uvicorn 與 gunicorn),可使用任何可用的 ASGI 生態(tài)。

缺 點(diǎn):Index.py 不內(nèi)置數(shù)據(jù)庫(kù)、緩存等其他功能。選擇困難者請(qǐng)直接使用 Django。

18. Sanic 框架

官 網(wǎng):?https://github.com/sanic-org/sanic?

優(yōu) 點(diǎn):Sanic 是一個(gè) Python 3.7+ web 服務(wù)器和 web 框架,它的編寫速度很快。它允許使用 Python 3.5 中添加的 async/await 語(yǔ)法,這使您的代碼無(wú)阻塞且快速。該項(xiàng)目的目標(biāo)是提供一種簡(jiǎn)單的方法來(lái)啟動(dòng)和運(yùn)行一個(gè)高性能的 HTTP 服務(wù)器,該服務(wù)器易于構(gòu)建、擴(kuò)展和最終擴(kuò)展。

缺 點(diǎn):就功能方面 Sanic 模仿 Flask,比如通過(guò)共享 Blueprints 的概念,微小的子應(yīng)用程序,允許開(kāi)發(fā)人員在更大的應(yīng)用程序中拆分和組織其代碼。對(duì)于光光是數(shù)據(jù)增刪改查 CRUD 應(yīng)用,Sanic 也不是一個(gè)好的選擇。

19. Starlette 框架

官 網(wǎng):?https://pypi.org/project/starlette/?

優(yōu) 點(diǎn):Starlette 是一個(gè)輕量級(jí)的 ASGI 框架 / 工具包,非常適合構(gòu)建性能異步服務(wù),它是生產(chǎn)就緒的,并為您提供以下內(nèi)容:令人印象深刻的表現(xiàn)。WwbSocket 支持。GraphQL 支持。進(jìn)程內(nèi)后臺(tái)任務(wù)。啟動(dòng)和關(guān)閉事件?;谡?qǐng)求構(gòu)建的測(cè)試客戶端。CORS、GZip、靜態(tài)文件、流響應(yīng)。會(huì)話和 Cookie 支持。100% 的測(cè)試覆蓋率。100% 類型注釋代碼庫(kù)。零硬依賴。

缺 點(diǎn):Starlette 提供了所有基本的 Web 微框架功能。但是它不提供自動(dòng)數(shù)據(jù)驗(yàn)證,序列化或 API 文檔。

20. Fastapi 框架

官 網(wǎng):?https://fastapi.tiangolo.com/?

優(yōu) 點(diǎn):FastAPI 是一個(gè)現(xiàn)代、快速(高性能)的 Web 框架,用于基于標(biāo)準(zhǔn) Python 類型提示使用 Python 3.6+ 構(gòu)建 API。非常高的性能,與 NodeJS 和 Go 相當(dāng)(感謝 Starlette 和 Pydantic)??捎玫淖羁斓?Python 框架之一。減少大約 40% 的人為(開(kāi)發(fā)人員)引發(fā)的錯(cuò)誤。簡(jiǎn)短,簡(jiǎn)單,直觀,健壯。

缺 點(diǎn):本身不帶模板語(yǔ)法,需要安裝模板語(yǔ)法。

21. Responder 框架

官 網(wǎng):?https://python-responder.org/?

優(yōu) 點(diǎn):是 kennethreitz 新開(kāi)發(fā)的一個(gè)項(xiàng)目,是一個(gè)基于 Python 的 HTTP 服務(wù)框架。底層用了 Starlette 的框架,Starlette 是一款輕量級(jí)的 ASGI 框架 / 工具包, 可以用 Starlette 構(gòu)建高性能的異步 IO 服務(wù)。相對(duì)于 Starlette , responder 對(duì)開(kāi)發(fā)者更加友好一點(diǎn)。kennethreitz 寫了 requests 號(hào)稱 "HTTP for Humans" 更加清楚這一點(diǎn)。事實(shí)上比較下來(lái),responder 也比 Starlette 優(yōu)雅很多。

缺 點(diǎn):可能是新項(xiàng)目, 打包還不太完善。就目前版本而言,少許代碼還不能正常工作。但接口形式已經(jīng)定義完畢,期待后面版本會(huì)加上去。

22. Molten 框架

官 網(wǎng):?https://moltenframework.com/?

優(yōu) 點(diǎn):Molten 是一個(gè)最小的、可擴(kuò)展的、快速的和高效的框架,用于使用 Python 構(gòu)建 HTTP API。計(jì)劃自動(dòng)驗(yàn)證請(qǐng)求,代碼更容易維護(hù)。實(shí)例可自動(dòng)序列化,包含 API 在現(xiàn)實(shí)世界中通常要求的各種功能,廣泛使用 PEP484 類型提示和 mypy。

缺 點(diǎn):它沒(méi)有使用像第三方庫(kù)(如 Pydantic)提供數(shù)據(jù)驗(yàn)證,序列化和文檔,它有自己的庫(kù)。因此,這些數(shù)據(jù)類型定義將不太容易重用。依賴注入系統(tǒng)需要對(duì)依賴項(xiàng)進(jìn)行預(yù)注冊(cè),并且將基于已聲明的類型解決依賴問(wèn)題。因此,不可能聲明多個(gè)組件來(lái)提供一個(gè)特定的類型。

23. Clastic 框架

官 網(wǎng):?https://github.com/mahmoud/clastic?

優(yōu) 點(diǎn):一個(gè)功能強(qiáng)大的 Python Web 框架,可簡(jiǎn)化顯式開(kāi)發(fā)實(shí)踐,同時(shí)消除全局狀態(tài)。Clastic 是完全用 Python 語(yǔ)言編寫的,增強(qiáng)可重用性和可測(cè)試性,主動(dòng) URL 路由檢查,更好地控制應(yīng)用程序初始化,改進(jìn)的中間件范例,沒(méi)有全局狀態(tài),ORM 用法,更容易的 WSGI 集成。

缺 點(diǎn):Clastic 沒(méi)有構(gòu)建全局狀態(tài);URL 路由規(guī)則參數(shù)和視圖函數(shù)簽名不匹配,在 Clastic 中,這種不匹配會(huì)在構(gòu)建應(yīng)用程序時(shí)引發(fā)異常。

24. Aiohttp 框架

官 網(wǎng):?https://docs.aiohttp.org/en/stable/?

優(yōu) 點(diǎn):用于 asyncio 和 Python 的異步 HTTP 客戶端 / 服務(wù)器。支持客戶端和 HTTP 服務(wù)器,支持開(kāi)箱即用的服務(wù)器 WebSockets 和客戶端 WebSockets,沒(méi)有回調(diào)地獄。Web 服務(wù)器具有中間件、信號(hào)和可插入路由。

缺 點(diǎn):根據(jù) RFC 7231 aiohttp 2.0 版本后做了接受 HEAD 請(qǐng)求的調(diào)整,使用之前版本并且用 add_ get () 添加的請(qǐng)求,如果使用 HEAD 方法訪問(wèn)會(huì)返回 405。如果處理器會(huì)寫入很多響應(yīng)體內(nèi)容,你可以在執(zhí)行 HEAD 方法時(shí)跳過(guò)處理響應(yīng)體內(nèi)容以提高執(zhí)行效率。

25. Masonite 框架

官 網(wǎng):?https://docs.masoniteproject.com/?

優(yōu) 點(diǎn):現(xiàn)代和以開(kāi)發(fā)人員為中心的 Python Web 框架致力于實(shí)現(xiàn)實(shí)際的 batteries,包括具有許多開(kāi)箱即用功能的開(kāi)發(fā)人員工具,具有極其可擴(kuò)展的架構(gòu)。Masonite 非常適合初學(xué)者開(kāi)發(fā)人員進(jìn)入他們的第一個(gè) Web 應(yīng)用程序,以及需要充分利用 Masonite 的全部潛力來(lái)完成他們的應(yīng)用程序的經(jīng)驗(yàn)豐富的開(kāi)發(fā)人員。Masonite 努力實(shí)現(xiàn)從安裝到部署的快速簡(jiǎn)便,因此開(kāi)發(fā)人員可以盡可能快速有效地從概念到創(chuàng)建。將其用于您的下一個(gè) SaaS!嘗試一次,你就會(huì)墜入愛(ài)河。

缺 點(diǎn):對(duì)于 Masonite 來(lái)說(shuō),最大的” 競(jìng)爭(zhēng)對(duì)手” 是 Django, 因?yàn)樯鐓^(qū)正在竭盡全力將框架推向容易,令人愉悅的下一件大事。與 Django 相比,Masonite 仍然是嬰兒,期待它未來(lái)的表現(xiàn)。

26. Quart 框架

官 網(wǎng):?https://pgjones.gitlab.io/quart/?

優(yōu) 點(diǎn):Quart 是一個(gè) Python 網(wǎng)絡(luò)微框架。使用 Quart,您可以呈現(xiàn)和提供 HTML 模板,編寫(RESTful)JSON API,服務(wù) WebSockets,流請(qǐng)求和響應(yīng)數(shù)據(jù),幾乎可以通過(guò) HTTP 或 WebSocket 協(xié)議做任何事情。

缺 點(diǎn):它僅支持 Python 3.7+。

27. Tonberry 框架

官 網(wǎng)https://github.com/Ayehavgunne/Tonberry

優(yōu) 點(diǎn):一個(gè)符合 ASGI 的 Web 微框架,采用基于類的路由方法。受 CherryPy 的影響但與 asyncio 兼容。一個(gè)名為 Qactuar 的配套 ASGI 服務(wù)器是從這個(gè)目前正在進(jìn)行的項(xiàng)目中產(chǎn)生的。

缺 點(diǎn):在使用拉取請(qǐng)求,請(qǐng)使用自動(dòng)格式化程序 iSort 和 Black 并使用 MyPy 驗(yàn)證代碼。這是在不消除某些類型錯(cuò)誤的情況下,并不總是可以使 MyPy 完全滿意,但是至少盡你所能并謹(jǐn)慎使用注釋 `# type: ignore`。最后,嘗試,盡可能提供最準(zhǔn)確的類型提示。

28. cyclone 框架

官 網(wǎng):?https://cyclone.io/?

優(yōu) 點(diǎn):Cyclone 是 Python 的 Web 服務(wù)器框架,它將 Tornado API 實(shí)現(xiàn)為 Twisted 協(xié)議。Twisted 是一個(gè)事件驅(qū)動(dòng)的 Python 網(wǎng)絡(luò)編程框架。它是最成熟的非阻塞 I/O 庫(kù)之一,可供公眾使用。Tornado 是 FriendFeed 網(wǎng)絡(luò)服務(wù)器的開(kāi)源版本,它是最流行和最快速的 Python 網(wǎng)絡(luò)服務(wù)器之一,具有用于構(gòu)建網(wǎng)絡(luò)應(yīng)用程序的非常不錯(cuò)的 API。除了豐富的功能集之外,Cyclone 還解決了 C10K 問(wèn)題。

缺 點(diǎn):Cyclone 不再支持 python 2.x 。

29. Klein 框架

官 網(wǎng):?https://github.com/twisted/klein?

優(yōu) 點(diǎn):Klein 是一個(gè)微框架,用于使用 Python 開(kāi)發(fā)可用于生產(chǎn)的 Web 服務(wù)。它是 “微” 的,因?yàn)樗哂蓄愃朴?Bottle 和 Flask 的非常小的 API。它不是 “微”,因?yàn)樗蕾囉跇?biāo)準(zhǔn)庫(kù)之外的東西。這主要是因?yàn)樗⒃趶V泛使用和經(jīng)過(guò)良好測(cè)試的組件上,如 Werkzeug 和 Twisted。

缺 點(diǎn):也許有點(diǎn)過(guò)時(shí)了。

30. nameko 框架

官 網(wǎng):?https://github.com/nameko/nameko?

優(yōu) 點(diǎn):AMQP RPC 和事件(發(fā)布 - 訂閱),HTTPGET、POST 和 websockets,CLI 實(shí)現(xiàn)簡(jiǎn)單快速的開(kāi)發(fā),用于單元和集成測(cè)試的實(shí)用程序。

缺 點(diǎn):nameko 微服務(wù)出錯(cuò)不會(huì)自動(dòng)打印錯(cuò)誤日志,需要加上監(jiān)控相關(guān)的依賴,計(jì)算密集型任務(wù)導(dǎo)致任務(wù)重試。

31. CubicWeb 框架

官 網(wǎng):?https://www.cubicweb.org/?

優(yōu) 點(diǎn):CubicWeb 是一種語(yǔ)義 Web 應(yīng)用程序框架,在 LGPL 下獲得許可,它使開(kāi)發(fā)人員能夠通過(guò)重用組件(稱為立方體)并遵循眾所周知的面向?qū)ο笤O(shè)計(jì)原則來(lái)有效地構(gòu)建 Web 應(yīng)用程序。滿足常見(jiàn)需求的可重用組件(數(shù)據(jù)模型和視圖)庫(kù),Python 編程語(yǔ)言的強(qiáng)大功能和靈活性,用于存儲(chǔ)后端的 SQL 數(shù)據(jù)庫(kù)、LDAP 目錄、Subversion 和 Mercurial 的可靠性。

缺 點(diǎn):要在 CubicWeb 應(yīng)用程序中獲取或操作持久數(shù)據(jù),可以使用關(guān)系查詢語(yǔ)言(RQL),RQL 提供了一種高度分離的路徑來(lái)相互關(guān)聯(lián)各種數(shù)據(jù)源。但是,隨著它的實(shí)現(xiàn),通過(guò)手動(dòng)構(gòu)建查詢作為字符串,它可能會(huì)讓習(xí)慣于 ORM 的開(kāi)發(fā)人員感到過(guò)時(shí)。使用 CubicWeb 還有其他障礙。首先,設(shè)置可能很麻煩。另一個(gè)潛在的問(wèn)題是缺少本機(jī)模板引擎;生成 HTML 留給開(kāi)發(fā)人員。CubicWeb 支持 Python 3,但 Twisted 等模塊本身并未完全移植。

32. Zope2 框架

官 網(wǎng):?https://zope.readthedocs.io/en/latest/?

優(yōu) 點(diǎn):Zope 2 是一款基于 Python 的 Web 應(yīng)用框架,是所有 Python Web 應(yīng)用程序、工具的鼻祖,是 Python 家族一個(gè)強(qiáng)有力的分支。Zope 2 的 “對(duì)象發(fā)布” 系統(tǒng)非常適合面向?qū)ο箝_(kāi)發(fā)方法,并且可以減輕開(kāi)發(fā)者的學(xué)習(xí)曲線,還可以幫助你發(fā)現(xiàn)應(yīng)用程序里一些不好的功能。

缺 點(diǎn):Zope 不適用于簡(jiǎn)單的 RESTful API(每 Bottle 或 Flask),甚至不適用于具有交互性的基本網(wǎng)站(à la Django),由于 Zope 的尺寸和復(fù)雜性,安裝需要一些工作;這不是簡(jiǎn)單地將源解壓縮到項(xiàng)目子文件夾中的問(wèn)題。

33. Web2py 框架

官 網(wǎng):?http://web2py.com/?

優(yōu) 點(diǎn):Web2py 是一個(gè)用 Python 語(yǔ)言編寫的免費(fèi)的開(kāi)源 Web 框架,旨在敏捷快速的開(kāi)發(fā) Web 應(yīng)用,具有快速、可擴(kuò)展、安全以及可移植的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的應(yīng)用,遵循 LGPLv3 開(kāi)源協(xié)議。Web2py 提供一站式的解決方案,整個(gè)開(kāi)發(fā)過(guò)程都可以在瀏覽器上進(jìn)行,提供了 Web 版的在線開(kāi)發(fā),HTML 模版編寫,靜態(tài)文件的上傳,數(shù)據(jù)庫(kù)的編寫的功能。其它的還有日志功能,以及一個(gè)自動(dòng)化的 admin 接口。

缺 點(diǎn):Web2py 的一個(gè)重要限制是它僅與 Python 2.x 兼容。首先,這意味著 Web2py 無(wú)法使用 Python 3 的異步語(yǔ)法。如果你依賴于 Python 3 獨(dú)有的外部庫(kù),那么你就不走運(yùn)了。但是,正在開(kāi)展使 Web2py Python 3 兼容的工作,并且在撰寫本文時(shí)它已接近完成。

34. Pylons 框架

官 網(wǎng):?https://docs.pylonsproject.org/projects/pylons-webframework/en/latest/?

優(yōu) 點(diǎn):Pylons 是一個(gè)開(kāi)放源代碼的 Web 應(yīng)用框架,使用 python 語(yǔ)言編寫。它對(duì) WSGI 標(biāo)準(zhǔn)進(jìn)行了擴(kuò)展應(yīng)用,提升了重用性且將功能分割到獨(dú)立的模塊中。Pylons 是最新的 Web 應(yīng)用框架中的典型,類似于 Django 和 TurboGears。Pylons 受 Ruby on Rails 影響很深:它的兩個(gè)組件,Routes 和 WebHelpers 是 Rails 特性的 Python 實(shí)現(xiàn)。

缺 點(diǎn):Pylons 已與 repoze.bfg 合并,現(xiàn)在處于僅維護(hù)模式。強(qiáng)烈建議新項(xiàng)目從新合并的 Web 框架金字塔開(kāi)始。

35. Cubes 框架

官 網(wǎng):?https://pythonhosted.org/cubes/?

優(yōu) 點(diǎn):Cubes 是一個(gè)輕量級(jí)的 Python 框架和工具集,用于開(kāi)發(fā)報(bào)告和分析應(yīng)用程序、在線分析處理 (OLAP)、多維分析和瀏覽聚合數(shù)據(jù)。它是 Data Brewery 的一部分。

缺點(diǎn):不再為每個(gè)多維數(shù)據(jù)集提供隱式聚合 record_count。它必須明確定義為聚合:舊的后端架構(gòu)是有限制的。它只允許使用一個(gè)商店,必須在服務(wù)器啟動(dòng)之前知道模型,不可能從遠(yuǎn)程來(lái)源獲取模型。

36. Dpark 框架

官 網(wǎng):?https://github.com/Liangchengdeye/Dpark?

優(yōu) 點(diǎn):DPark 是 Spark 的 Python 克隆版本,是一個(gè) Python 實(shí)現(xiàn)的分布式計(jì)算框架,可以非常方便地實(shí)現(xiàn)大規(guī)模數(shù)據(jù)處理和低延時(shí)的迭代計(jì)算。該計(jì)算框架類似于 MapReduce,但是比其更靈活,可以用 Python 非常方便地進(jìn)行分布式計(jì)算,并且提供了更多的功能,以便更好地進(jìn)行迭代式計(jì)算。DPark 由國(guó)內(nèi)的豆瓣公司開(kāi)發(fā)實(shí)現(xiàn)和負(fù)責(zé)維護(hù),據(jù)豆瓣公司的描述,目前豆瓣公司內(nèi)部的絕大多數(shù)數(shù)據(jù)分析都使用 DPark 完成,整個(gè)項(xiàng)目也正趨于完善。

缺 點(diǎn):Dpark 使用的是進(jìn)程,在 Python 中,由于 GIL (Global Interpreter Lock) 的存在,即使在多核機(jī)器上使用多個(gè)線程,這些線程之間也沒(méi)有辦法真正地實(shí)現(xiàn)并發(fā)執(zhí)行。

37. Buildbot 框架

官 網(wǎng):?https://buildbot.python.org/all/#/?

優(yōu) 點(diǎn):Buildbot 是 python 實(shí)現(xiàn)的開(kāi)源持續(xù)構(gòu)建和持續(xù)交付工具,為 Python, Mozilla, Chromium, WebKit 等知名項(xiàng)目使用。Buildbot 可以直接使用 python 包,輕松擁有上萬(wàn)庫(kù),具備強(qiáng)大的擴(kuò)展能力。如果你覺(jué)得 Jenkins 已經(jīng)輕松地滿足你的需求,你不需要 Buildbot。如果你在 Jenkins 時(shí)覺(jué)得效率低下、擴(kuò)展困難、一些用 python 等腳本可以實(shí)現(xiàn)的動(dòng)作在 Jenkins 困難重重,那么可以看看 Buildbot。

缺 點(diǎn):buildbot 對(duì)多項(xiàng)目支持并不好。

責(zé)任編輯:龐桂玉 來(lái)源: Python編程
相關(guān)推薦

2022-04-13 18:40:59

Python開(kāi)發(fā)

2024-10-14 10:12:37

Python Web框架Python

2022-07-03 17:10:15

JavaScript編程語(yǔ)言開(kāi)發(fā)

2015-07-13 10:41:30

Web開(kāi)發(fā) Python 框架

2015-08-25 09:53:22

Web開(kāi)發(fā)Python框架

2011-08-22 10:11:03

JavaScript

2017-05-23 14:20:17

WebPython框架

2015-06-04 10:44:59

WebAPP開(kāi)發(fā)技巧

2015-06-17 10:28:10

WebAPP開(kāi)發(fā)技巧

2021-07-28 14:14:09

JavaScript開(kāi)源框架

2011-05-19 17:00:56

Web框架

2010-09-30 08:24:55

Web移動(dòng)應(yīng)用框架

2017-02-27 17:06:43

Java Web開(kāi)發(fā)亂碼

2017-07-18 15:13:17

2009-06-18 12:06:30

Java Web開(kāi)發(fā)框

2009-09-03 16:52:44

Java Web開(kāi)發(fā)框

2010-05-19 14:38:11

Web開(kāi)發(fā)框架Web層

2020-05-18 13:35:03

Web前端開(kāi)源框架

2016-03-01 13:48:36

MVVMios快速開(kāi)發(fā)

2020-04-15 10:26:47

Web前端開(kāi)發(fā)開(kāi)源框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)