最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 5個(gè)頂級(jí)異步框架推薦

 更新時(shí)間:2020年09月09日 09:44:53   作者:劉志軍  
這篇文章主要介紹了python5個(gè)頂級(jí)的異步框架,幫助大家更好的利用python進(jìn)行web開(kāi)發(fā),感興趣的朋友可以了解下

Python在3.4引入了 asyncio 庫(kù),3.6新增了關(guān)鍵字 async和await,此后,異步框架迅速發(fā)展了起來(lái),性能上能和Node.js比肩,除非是CPU密集型任務(wù),否則沒(méi)有理由不適用異步框架。

如果你是Web開(kāi)發(fā)者,現(xiàn)在異步Web框架上有了更多選擇!

1、Tornado

Tornado 根本不是什么新框架,它最初是由FriendFeed(后被Facebook收購(gòu))在2009年發(fā)布。從一開(kāi)始就提供有異步編程的功能。

Tornado 不僅僅是Web框架,同時(shí)它內(nèi)置了很多異步模塊,可用于自己構(gòu)建異步應(yīng)用。這些模塊包括:

  • 協(xié)同程序和其他原語(yǔ)(tornado.gen,tornado.locks,tornado.queues等)
  • 網(wǎng)絡(luò)模塊(tornado.ioloop,tornado.iostream等)
  • 異步服務(wù)器和客戶端(tornado.httpserver,tornado.httpclient,等)

通過(guò)這些模塊,Tornado 構(gòu)建了自己的異步Web框架模塊。

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
  def get(self):
    self.write("Hello, world")

def make_app():
  return tornado.web.Application([
    (r"/", MainHandler),
  ])

if __name__ == "__main__":
  app = make_app()
  app.listen(8888)
  tornado.ioloop.IOLoop.current().start()

Tornado在Python社區(qū)中擁有很多追隨者,并且經(jīng)驗(yàn)豐富的架構(gòu)師使用它們來(lái)構(gòu)建功能強(qiáng)大的系統(tǒng)。這個(gè)框架長(zhǎng)期以來(lái)一直在解決并發(fā)問(wèn)題,但是由于它不支持WSGI標(biāo)準(zhǔn)(大部分Python庫(kù)仍在同步中),因此尚未成為主流。

國(guó)內(nèi)據(jù)說(shuō)知乎是基于Torando構(gòu)建的。

2、 Snaic

Sanic是一個(gè)誕生有3年的框架:它只支持3.6以上Python版本,支持通用的async / await語(yǔ)法,開(kāi)箱即用,因此你無(wú)需閱讀大量文檔就可以寫(xiě)出你的一個(gè)HTTP 處理器。

除了async關(guān)鍵字之外,語(yǔ)法上和 flask 基于沒(méi)差別。

from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
  return json({"hello": "world"})

if __name__ == "__main__":
  app.run(host="0.0.0.0", port=8000)

Sanic可以說(shuō)是Python世界中最流行和最受歡迎的異步框架。它具有你項(xiàng)目中需要的所有功能:路由,中間件,Cookie,版本控制,藍(lán)圖,基于類(lèi)的視圖,靜態(tài)文件,流,sockets,此外你還可以集成模板,數(shù)據(jù)庫(kù)驅(qū)動(dòng),文件I / O,隊(duì)列等等。

3、Vibora

Vibora和Sanic非常像,致力于成為最快的Python Web服務(wù)器。他們網(wǎng)站首頁(yè)有一個(gè)框架比較圖:

Vibora聲稱比其它框架快幾倍,比競(jìng)爭(zhēng)對(duì)手Sanic還快兩倍多。當(dāng)然,這個(gè)基準(zhǔn)測(cè)試要持懷疑態(tài)度。

盡管在語(yǔ)法和功能上,Vibora可以與Sanic媲美但我認(rèn)為Sanic更加成熟,因?yàn)樗呀?jīng)存在了很長(zhǎng)一段時(shí)間并且具有更大的社區(qū)。

from vibora import Vibora, JsonResponse

app = Vibora()

@app.route('/')
async def home():
  return JsonResponse({'hello': 'world'})

if __name__ == '__main__':
  app.run(host="0.0.0.0", port=8000)

4、Quart

如果您喜歡Flask,但又要支持異步, 那么Quart你一定會(huì)喜歡

Quart符合ASGI標(biāo)準(zhǔn),該標(biāo)準(zhǔn)是WSGI標(biāo)準(zhǔn)的后繼產(chǎn)品,并提供異步支持。Quart不僅與Flask相似,而且與Flask API兼容!該框架的作者希望保留了Flask的風(fēng)格,只是向其中添加異步、WebSocket和HTTP 2支持。因此,你可以從Flask文檔中學(xué)習(xí)Quart的用法,只需要記住Quart中的函數(shù)是異步的就行。

from quart import Quart

app = Quart(__name__)

@app.route('/')
async def hello():
  return 'hello'

app.run()

幾乎完全像Flask

由于Quart是從Flask中演進(jìn)過(guò)來(lái)的,因此Flask的所有功能均可用:路由,中間件,會(huì)話,模板,藍(lán)圖等。實(shí)際上,你甚至可以直接在Quart內(nèi)部使用Flask的擴(kuò)展插件。不過(guò),有一個(gè)問(wèn)題是它僅支持Python 3.7+。

5、FastAPI

FastAPI似乎是異步 Python 框架里功能、文檔最豐富的框架。

該框架的作者深入研究了其他幾個(gè)框架,從諸如Django到Sanic之類(lèi)的現(xiàn)代框架,以及NestJS(Node.js,Typescript Web框架)。

語(yǔ)法甚至可以說(shuō)它比我們遇到的其他框架更有趣:

rom fastapi import FastAPI

app = FastAPI()

@app.get("/users/me")
async def read_user_me():
  return {"user_id": "the current user"}

@app.get("/users/{user_id}")
async def read_user(user_id: str):
  return {"user_id": user_id}

FastAPI勝過(guò)其他框架的殺手锏列表:

自動(dòng)生成API文檔:編寫(xiě)API接口后,你就可以使用符合標(biāo)準(zhǔn)的UI如SwaggerUI,ReDoc等來(lái)使用API​​。

那性能呢?FastAPI是基于Starlette庫(kù)構(gòu)建的,其性能可與Node相匹配,在某些情況下甚至可以與Go相匹配??偠灾?,我真的有一種感覺(jué),F(xiàn)astAPI將成為Python的頂級(jí)異步框架。

總結(jié)

如今,Python異步生態(tài)正在發(fā)生很多事情。出現(xiàn)了新的框架,舊的框架正在重寫(xiě),很多庫(kù)開(kāi)始支持異步行為。對(duì)于Web框架,Python已準(zhǔn)備就緒,可提供出色的性能。如果很長(zhǎng)一段時(shí)間你在考慮遷移到Node或者go,那現(xiàn)在不需要了。

原文參考連接:https://geekflare.com/python-asynchronous-web-frameworks/

以上就是python 5個(gè)頂級(jí)異步框架推薦的詳細(xì)內(nèi)容,更多關(guān)于python 異步框架的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中正則表達(dá)式的詳細(xì)教程

    Python中正則表達(dá)式的詳細(xì)教程

    這篇文章主要介紹了Python中正則表達(dá)式的詳細(xì)教程,正則表達(dá)式是Python學(xué)習(xí)進(jìn)階當(dāng)中的重要內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • Flask框架利用Echarts實(shí)現(xiàn)繪制圖形

    Flask框架利用Echarts實(shí)現(xiàn)繪制圖形

    echarts是百度推出的一款開(kāi)源的基于JavaScript的可視化圖表庫(kù),該開(kāi)發(fā)庫(kù)目前發(fā)展非常不錯(cuò),且支持各類(lèi)圖形的繪制可定制程度高。如下演示案例中,將分別展示運(yùn)用該繪圖庫(kù)如何前后端交互繪制(餅狀圖,柱狀圖,折線圖)這三種最基本的圖形,需要的可以參考一下
    2022-10-10
  • python3讀取MySQL-Front的MYSQL密碼

    python3讀取MySQL-Front的MYSQL密碼

    本篇文章主要介紹了python3讀取MySQL-Front的MYSQL密碼的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-05-05
  • python整合ffmpeg實(shí)現(xiàn)視頻文件的批量轉(zhuǎn)換

    python整合ffmpeg實(shí)現(xiàn)視頻文件的批量轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了python整合ffmpeg實(shí)現(xiàn)視頻文件的批量轉(zhuǎn)換,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • 利用python計(jì)算均值、方差和標(biāo)準(zhǔn)差(Numpy和Pandas)

    利用python計(jì)算均值、方差和標(biāo)準(zhǔn)差(Numpy和Pandas)

    這篇文章主要給大家介紹了關(guān)于利用python計(jì)算均值、方差和標(biāo)準(zhǔn)差的相關(guān)資料,Numpy在Python中是一個(gè)通用的數(shù)組處理包,它提供了一個(gè)高性能的多維數(shù)組對(duì)象和用于處理這些數(shù)組的工具,它是使用Python進(jìn)行科學(xué)計(jì)算的基礎(chǔ)包,需要的朋友可以參考下
    2023-11-11
  • pandas 數(shù)據(jù)實(shí)現(xiàn)行間計(jì)算的方法

    pandas 數(shù)據(jù)實(shí)現(xiàn)行間計(jì)算的方法

    今天小編就為大家分享一篇pandas 數(shù)據(jù)實(shí)現(xiàn)行間計(jì)算的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python設(shè)計(jì)模式結(jié)構(gòu)型享元模式

    Python設(shè)計(jì)模式結(jié)構(gòu)型享元模式

    這篇文章主要介紹了Python享元模式,享元模式即Flyweight Pattern,指運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象,下面和小編一起進(jìn)入文章了解更多詳細(xì)內(nèi)容吧
    2022-02-02
  • 用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人

    用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人

    今天給大家?guī)?lái)的是關(guān)于Python實(shí)戰(zhàn)的相關(guān)知識(shí),文章圍繞著用Python selenium實(shí)現(xiàn)淘寶搶單機(jī)器人展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Python實(shí)現(xiàn)選擇排序

    Python實(shí)現(xiàn)選擇排序

    選擇法也算是入門(mén)的一種排序算法,比起冒泡法,它的方法巧妙了一些,它的出發(fā)點(diǎn)在于“挑”,每次挑選數(shù)組的最值,與前置元素?fù)Q位,然后繼續(xù)挑選剩余元素的最值并重復(fù)操作。個(gè)人認(rèn)為選擇排序的意義不在于排序本身,而在于挑選和置換的方法,對(duì)于一些問(wèn)題很有幫助。
    2017-06-06
  • python中使用(.)進(jìn)行相對(duì)路徑訪問(wèn)文件的操作方法

    python中使用(.)進(jìn)行相對(duì)路徑訪問(wèn)文件的操作方法

    在Python中,使用相對(duì)路徑訪問(wèn)文件是一種常見(jiàn)的做法,尤其是在處理與腳本位于同一目錄或附近目錄的文件時(shí),這篇文章主要介紹了python中使用(.)來(lái)進(jìn)行相對(duì)路徑訪問(wèn)文件,需要的朋友可以參考下
    2024-05-05

最新評(píng)論

南部县| 姚安县| 平顺县| 东山县| 黄冈市| 永修县| 栖霞市| 开原市| 台中县| 广河县| 厦门市| 图木舒克市| 秭归县| 扎赉特旗| 昆明市| 平原县| 怀来县| 遂溪县| 延长县| 天祝| 汝阳县| 聂拉木县| 郴州市| 洛南县| 洪泽县| 长治县| 砀山县| 武城县| 通化县| 台州市| 右玉县| 台东县| 时尚| 萨嘎县| 扎囊县| 甘德县| 古交市| 瑞丽市| 广水市| 克什克腾旗| 济阳县|