2020年值得去了解的12個(gè)Python Web框架 - 新聞資(zī)訊 - 雲南小程序開發|雲南軟件開發|雲南網站(zhàn)建設-西山區知普網絡科技工作室

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不管是網站(zhàn),軟件還是小程序,都要直接或間接能為您産生價值,我們在追求其視覺表現的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網站(zhàn)成為營銷工具,讓軟件能切實提升企業(yè)内部管理水平和(hé)效率。優秀的程序為後期升級提供便捷的支持!

您當前位置>首頁 » 新聞資(zī)訊 » 網站(zhàn)建設 >

2020年值得去了解的12個(gè)Python Web框架

發表時間:2020-1-15

發布人:葵宇科技

浏覽次數:49

在Web開發領域,Python其實并沒有像在機器(qì)學習和(hé)數據處理這個(gè)領域一樣占有統治地位。不過鑒于Python在最近幾年的強勢地位,了解一下(xià)Python的web框架也挺有必要的。萬一哪天我自己或者是客戶“腦抽”了,真的要用Python來寫web應用了呢(ne)?框架(Framework)讓程序員的生活更容易,常用的功能和(hé)方法都打包進了框架裡,直接從庫裡拿出來修改一下(xià)就用,确實是個(gè)省時省力,幹活多快好省的好東西。

1. Why Python?

就不廢話了,用一張圖片和(hé)一張圖表來解釋吧。

  • 人生苦短(duǎn),Python是岸

  • 日月(yuè)蛇(Python)教,一統江湖之勢
來源:Stack Overflow - STACKOVERFLOW.BLOG

2. Python Web框架總結

總體來說Django和(hé)Flask是最最流行的Python Web框架,但是這不是說我們就可(kě)以忽略其他的框架。其實每一個(gè)框架都有其獨特的設計和(hé)優勢,在某些需求下(xià),可(kě)能會更适合你(nǐ)的項目。

來源:JETBRAINS.COM

我們可(kě)以把這些框架分成兩種類型: 1.全功能框架(或重型框架),這種類型的框架包括創建web應用所需要的大部分功能,通(tōng)常可(kě)以用于構架需要完整功能和(hé)複雜設計的大型網站(zhàn)應用。2.輕量級框架,顧名思義,就是提供比較簡單的網站(zhàn)構建功能,通(tōng)常用于簡單的,或者是小型的網站(zhàn)應用。

全功能框架

Django

官網 | GitHub | PyPI | Awesome

Django應該是最流行的Python Web框架了,沒有之一。而且其包含了創建應用需要的幾乎全部功能,給人的感覺是這個(gè)框架希望框架本身實現各種功能,而不是依靠其他的庫來完成。比如(rú)Django集成了安全認證,URL Routing,模闆引擎,ORM以及數據庫Scheme映射。這使得Django非常強大,有很好的可(kě)擴展性,性能也非常好。Django支持 PostgreSQL, MySQL, SQLite, Oracle和(hé)其他第三方數據庫。其ORM功能支持多數據庫之間的轉換。

總之Django的設計優秀,結構合理,性能出衆。适合不同規模的網站(zhàn),在2020年,Django會加入對機器(qì)學習的支持,同時攜Python迅猛發展勢頭,很有可(kě)能會成為今年使用者增長最快的Web框架。

Pyramid

官網 | GitHub | PyPI | Awesome

Pyramid是一個(gè)在2010年就誕生的框架,其目标是簡化web開發的複雜性。最新的版本是1.10,這已經是其第10個(gè)正式版本了。這個(gè)框架可(kě)以用于複雜的應用開發,也适用輕量級應用。Pyraid的開發社區還是比較活躍的。版本更新頻繁,各技術(shù)群的讨論也是非常熱烈的。

TurboGears

官網 | GitHub | PyPI

TurboGear是一個(gè)開源和(hé)數據驅動(dòng)的程序框架,它是建構在很多不同的中(zhōng)間件和(hé)庫的基礎上,實際上這個(gè)框架試圖把其他的Python框架中(zhōng)最好的組件融入其中(zhōng)。TurboGear允許開發者能夠快速搭建數據驅動(dòng)的網站(zhàn)應用。它有非常好用的模闆引擎,對聚合的支持,功能強大而靈活的ORM工具,而且自帶了大量的小代碼片段,可(kě)以讓開發更容易。

現在TurboGear的社區正在緻力于開發一個(gè)簡化(瘦身)版的TurboGear框架,這将會給大家帶來一個(gè)更加簡單易用的框架。

Web2py

官網 | GitHub | PyPI

這個(gè)原先是作為一個(gè)教學用的項目被開發出來,自帶IDE工具,為了簡化使用,其沒有項目級的配置文(wén)件。Web2Py有一個(gè)内置的ticket系統,隻要出現錯誤就會生出ticket,用來追蹤運行時的問(wèn)題。

這個(gè)項目的社區和(hé)郵件列表并不活躍

輕量級框架

Flask

官網 | GitHub | PyPI | Awesome

目前為止,Flask是最流行的Python輕量級Web框架。這個(gè)框架是受到Sinatra Ruby的啟發而開發出來的。 Flask基于Werkzeug WSGI toolkit以及 Jinja2 模闆。

Flask的目的是要建立一個(gè)非常穩定和(hé)可(kě)靠的Web應用的基礎系統,我們可(kě)以使用Flack再加上各種插件,擴展和(hé)其他模塊,能夠構建功能強大的網站(zhàn)和(hé)應用。事實上,如(rú)果Django不适合的應用類型,使用Flask基本上是Python Web開發的默認選擇。

Flask也是一個(gè)在2010年啟動(dòng)的開源項目,到目前為止已經更新了27個(gè)版本,由于曆史比較長,有些早期的擴展已經不被支持,文(wén)檔也不再更新。需要在網絡上找到最新的文(wén)檔和(hé)功能。

Bottle

官網 | GitHub | PyPI

Bottle是一個(gè)輕量級的框架,最初是設計為一個(gè)API框架,整個(gè)Bottle框架是在一個(gè)源文(wén)件上。沒有引用任何Python标準庫。建議是如(rú)果使用Bottle,最好是非常小的程序,最好小于500行代碼并且沒有特殊的需求。

CherryPy, Falcon, Hug, FastAPI - 極為小衆,就不介紹了。讀者有興趣可(kě)以自己查看

異步框架

以下(xià)兩個(gè)開源框架用于處理高并發的應用,可(kě)以用于需要解決C10K問(wèn)題(10000+并發的場景)

Sanic

官網 | GitHub | PyPI

Sanic是基于uvloop開發的,用于創建高并發異步Http請求的應用,必須使用Python3.5+,兼容Python3.5+的async/await方法,提供非阻塞的異步訪問(wèn)功能。Sanic是一個(gè)非常流行的異步框架。提供了routing, middleware, cookies, versioning, static files, blueprints, class-based views, 以及sockets的功能。不過比較可(kě)惜的是并沒有提供模闆引擎,也沒有内置的數據庫支持功能。

在一個(gè)Benchmark測試中(zhōng),Sanic單進程和(hé)100連接的情況下(xià),最高每秒同時并發處理33542個(gè)請求,平均時延2.96ms。

Tornado

官網 | GitHub | PyPI

Tornado是一個(gè)Python web框架加上異步網絡處理庫,用于大流量的網絡應用開發。使用非阻塞I/O,目标能夠處理C10K網站(zhàn)。如(rú)果配置合理,Tornado框架的網站(zhàn)應用能夠輕松應對10000+并發的流量。

Tornado的流行程度介于Django和(hé)Flask之間,如(rú)果你(nǐ)需要一個(gè)web應用,同時也要支持高并發,那Tornado是最好的選擇

相關(guān)案例查看更多