2020年值得去了(le/liǎo)解的(de)12個(gè)Python Web框架 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

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

知識

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

您當前位置>首頁 » 新聞資訊 » 網站建設 >

2020年值得去了(le/liǎo)解的(de)12個(gè)Python Web框架

發表時(shí)間:2020-1-15

發布人(rén):融晨科技

浏覽次數:90

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

1. Why Python?

就(jiù)不(bù)廢話了(le/liǎo),用一張圖片和(hé / huò)一張圖表來(lái)解釋吧。

  • 人(rén)生苦短,Python是(shì)岸

  • 日月蛇(Python)教,一統江湖之(zhī)勢
來(lái)源:Stack Overflow - STACKOVERFLOW.BLOG

2. Python Web框架總結

總體來(lái)說(shuō)Django和(hé / huò)Flask是(shì)最最流行的(de)Python Web框架,但是(shì)這(zhè)不(bù)是(shì)說(shuō)我們就(jiù)可以(yǐ)忽略其他(tā)的(de)框架。其實每一個(gè)框架都有其獨特的(de)設計和(hé / huò)優勢,在(zài)某些需求下,可能會更适合你的(de)項目。

來(lái)源:JETBRAINS.COM

我們可以(yǐ)把這(zhè)些框架分成兩種類型: 1.全功能框架(或重型框架),這(zhè)種類型的(de)框架包括創建web應用所需要(yào / yāo)的(de)大(dà)部分功能,通常可以(yǐ)用于(yú)構架需要(yào / yāo)完整功能和(hé / huò)複雜設計的(de)大(dà)型網站應用。2.輕量級框架,顧名思義,就(jiù)是(shì)提供比較簡單的(de)網站構建功能,通常用于(yú)簡單的(de),或者是(shì)小型的(de)網站應用。

全功能框架

Django

官網 | GitHub | PyPI | Awesome

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

總之(zhī)Django的(de)設計優秀,結構合理,性能出(chū)衆。适合不(bù)同規模的(de)網站,在(zài)2020年,Django會加入對機器學習的(de)支持,同時(shí)攜Python迅猛發展勢頭,很有可能會成爲(wéi / wèi)今年使用者增長最快的(de)Web框架。

Pyramid

官網 | GitHub | PyPI | Awesome

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

TurboGears

官網 | GitHub | PyPI

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

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

Web2py

官網 | GitHub | PyPI

這(zhè)個(gè)原先是(shì)作爲(wéi / wèi)一個(gè)教學用的(de)項目被開發出(chū)來(lái),自帶IDE工具,爲(wéi / wèi)了(le/liǎo)簡化使用,其沒有項目級的(de)配置文件。Web2Py有一個(gè)内置的(de)ticket系統,隻要(yào / yāo)出(chū)現錯誤就(jiù)會生出(chū)ticket,用來(lái)追蹤運行時(shí)的(de)問題。

這(zhè)個(gè)項目的(de)社區和(hé / huò)郵件列表并不(bù)活躍

輕量級框架

Flask

官網 | GitHub | PyPI | Awesome

目前爲(wéi / wèi)止,Flask是(shì)最流行的(de)Python輕量級Web框架。這(zhè)個(gè)框架是(shì)受到(dào)Sinatra Ruby的(de)啓發而(ér)開發出(chū)來(lái)的(de)。 Flask基于(yú)Werkzeug WSGI toolkit以(yǐ)及 Jinja2 模闆。

Flask的(de)目的(de)是(shì)要(yào / yāo)建立一個(gè)非常穩定和(hé / huò)可靠的(de)Web應用的(de)基礎系統,我們可以(yǐ)使用Flack再加上(shàng)各種插件,擴展和(hé / huò)其他(tā)模塊,能夠構建功能強大(dà)的(de)網站和(hé / huò)應用。事實上(shàng),如果Django不(bù)适合的(de)應用類型,使用Flask基本上(shàng)是(shì)Python Web開發的(de)默認選擇。

Flask也(yě)是(shì)一個(gè)在(zài)2010年啓動的(de)開源項目,到(dào)目前爲(wéi / wèi)止已經更新了(le/liǎo)27個(gè)版本,由于(yú)曆史比較長,有些早期的(de)擴展已經不(bù)被支持,文檔也(yě)不(bù)再更新。需要(yào / yāo)在(zài)網絡上(shàng)找到(dào)最新的(de)文檔和(hé / huò)功能。

Bottle

官網 | GitHub | PyPI

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

CherryPy, Falcon, Hug, FastAPI - 極爲(wéi / wèi)小衆,就(jiù)不(bù)介紹了(le/liǎo)。讀者有興趣可以(yǐ)自己查看

異步框架

以(yǐ)下兩個(gè)開源框架用于(yú)處理高并發的(de)應用,可以(yǐ)用于(yú)需要(yào / yāo)解決C10K問題(10000+并發的(de)場景)

Sanic

官網 | GitHub | PyPI

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

在(zài)一個(gè)Benchmark測試中,Sanic單進程和(hé / huò)100連接的(de)情況下,最高每秒同時(shí)并發處理33542個(gè)請求,平均時(shí)延2.96ms。

Tornado

官網 | GitHub | PyPI

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

Tornado的(de)流行程度介于(yú)Django和(hé / huò)Flask之(zhī)間,如果你需要(yào / yāo)一個(gè)web應用,同時(shí)也(yě)要(yào / yāo)支持高并發,那Tornado是(shì)最好的(de)選擇

相關案例查看更多