欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁(yè) > 知識(shí)庫(kù) > python異步的ASGI與Fast Api實(shí)現(xiàn)

python異步的ASGI與Fast Api實(shí)現(xiàn)

熱門(mén)標(biāo)簽:煙臺(tái)電話外呼營(yíng)銷(xiāo)系統(tǒng) 企業(yè)彩鈴地圖標(biāo)注 電銷(xiāo)機(jī)器人錄音要學(xué)習(xí)什么 外賣(mài)地址有什么地圖標(biāo)注 預(yù)覽式外呼系統(tǒng) 如何地圖標(biāo)注公司 長(zhǎng)春極信防封電銷(xiāo)卡批發(fā) 銀川電話機(jī)器人電話 上海正規(guī)的外呼系統(tǒng)最新報(bào)價(jià)

Asgi是異步通信服務(wù)規(guī)范。客戶端發(fā)起服務(wù)呼叫,但不等待結(jié)果。調(diào)用方立即繼續(xù)其工作,并不關(guān)心結(jié)果。如果調(diào)用方對(duì)結(jié)果感興趣,有一些機(jī)制可以讓其隨時(shí)被回調(diào)方法返回結(jié)果。

ASGI嘗試保持在一個(gè)簡(jiǎn)單的應(yīng)用接口的前提下,提供允許數(shù)據(jù)能夠在任意的時(shí)候、被任意應(yīng)用進(jìn)程發(fā)送和接受的抽象。并且同樣描述了一個(gè)新的,兼容HTTP請(qǐng)求響應(yīng)以及WebSocket數(shù)據(jù)幀的序列格式。允許這些協(xié)議能通過(guò)網(wǎng)絡(luò)或本地socket進(jìn)行傳輸,以及讓不同的協(xié)議被分配到不同的進(jìn)程中。

#Asgi example  
 async def application(scope, receive, send):  
  event = await receive()  
      ...   
    await send({"type": "websocket.send", ...})

ASGI框架

您可以使用 Uvicorn,Daphne 或 Hypercorn 運(yùn)行任何 ASGI 框架

對(duì)于小型服務(wù),您也可以直接編寫(xiě) ASGI 應(yīng)用程序。例如之前編寫(xiě)的異步框架。

Python 中有以下幾個(gè)支持 ASGI 的異步框架

Starlette
Starlette 是一個(gè)輕量級(jí)的 ASGI 框架/工具包。它是構(gòu)建高性能異步服務(wù)的理想選擇,并且支持 HTTP 和 WebSockets。

Django Channels
ASGI 規(guī)范最初是設(shè)計(jì)就是用于 Django Channels 的。
Channels 與其他ASGI框架略有不同,它在線程框架后端上提供了異步前端。
同時(shí) Django Channels 支持 WebSocket,后臺(tái)任務(wù)和長(zhǎng)期運(yùn)行的連接,而應(yīng)用程序代碼仍在標(biāo)準(zhǔn)線程上下文中運(yùn)行

Quart
Quart 是一個(gè)類(lèi)似于 Flask 的 ASGI Web 框架。Quart 不僅與 Flask 相似,而且與 Flask API 兼容!
該框架的作者希望保留了Flask 的風(fēng)格,只是向其中添加異步、WebSocket 和 HTTP 2支持。
因此,你可以從 Flask 文檔中學(xué)習(xí) Quart 的用法,只需要記住 Quart 中的函數(shù)是異步的就行。

一個(gè)簡(jiǎn)單的 Quart 服務(wù):

from quart import Quart
app = Quart(name)
@app.route('/')
async def hello():
return 'hello'app.run()

和 Flask 是不是很像,只是多了一個(gè)異步 async
由于 Quart 是從 Flask 中演進(jìn)過(guò)來(lái)的,因此 Flask 的所有功能均可用:路由,中間件,會(huì)話,模板,藍(lán)圖等

ASGI服務(wù)器

Uvicorn 是一個(gè)快速的 ASGI 服務(wù)器,Uvicorn 是基于 uvloop 和 httptools 構(gòu)建的,是 Python 異步生態(tài)中重要的一員。
Uvicorn 當(dāng)前支持 HTTP / 1.1 和 WebSockets,將來(lái)計(jì)劃支持HTTP / 2。
版本要求 Python 3.5 以上,Uvicorn 的安裝,

pip install uvicorn

示例如下:

async def app(scope, receive, send):
    assert scope['type'] == 'http'
    await send({
        'type': 'http.response.start',
        'status': 200,
        'headers': [
            [b'content-type', b'text/plain'],
        ]
    })
    await send({
        'type': 'http.response.body',
        'body': b'Hello, world!',
    })

運(yùn)行命令如下,

uvicorn demo:app
服務(wù)啟動(dòng)之后,我們通過(guò)瀏覽器就能方位該服務(wù),默認(rèn)端口 8000

Daphne
Daphne 服務(wù)器是最早為 Django Channels 提供支持的 ASGI 服務(wù)器
Daphne 它在生產(chǎn)中廣泛運(yùn)行,并支持HTTP / 1.1,HTTP / 2和 WebSockets。

安裝和運(yùn)行的命令如下:

pip install daphne  daphne app:App和 uvicorn 命令類(lèi)似,app 是文件名稱,APP 是應(yīng)用程序

Hypercorn
Hypercorn 最初是框架 Quart 的一部分,然后被分離為獨(dú)立的 ASGI 服務(wù)器
同樣的,Hypercorn 支持 HTTP/1.1, HTTP/2, 以及 WebSockets.
安裝和運(yùn)行的命令如下:
pip install hypercorn hypercorn app:App

FastAPI

FastAPI 是一個(gè)基于 Starlette 和 Pydantic 的 API 框架,其靈感來(lái)自以前的 APISta 服務(wù)器版本
使用 Python 3.6+ 類(lèi)型聲明編寫(xiě) API 函數(shù)參數(shù),并獲得自動(dòng)數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)驗(yàn)證。
FastApi 最主要的特點(diǎn)是快,非常高的性能,向 NodeJS 和 Go 看齊,現(xiàn)有最快的Python框架之一
同時(shí)它可以自動(dòng)生成交互式 API 文檔 UI,編寫(xiě) API 接口后,你就可以使用符合標(biāo)準(zhǔn)的 UI 如 SwaggerUI,ReDoc 等來(lái)使用 API。

其特點(diǎn)如下:

  • 快速:擁有非常高的性能,歸功于 Starlette 和 Pydantic;Starlette 用于路由匹配,Pydantic 用于數(shù)據(jù)驗(yàn)證
  • 開(kāi)發(fā)效率:功能開(kāi)發(fā)效率提升 200% 到 300%
  • 減少 bug:減少 40% 的因?yàn)殚_(kāi)發(fā)者粗心導(dǎo)致的錯(cuò)誤
  • 智能:內(nèi)部的類(lèi)型注解非常完善,編輯器可處處自動(dòng)補(bǔ)全
  • 簡(jiǎn)單:框架易于使用,文檔易于閱讀
  • 簡(jiǎn)短:使代碼重復(fù)最小化,通過(guò)不同的參數(shù)聲明實(shí)現(xiàn)豐富的功能
  • 健壯:可以編寫(xiě)出線上使用的代碼,并且會(huì)自動(dòng)生成交互式文檔
  • 標(biāo)準(zhǔn)化:兼容 API 相關(guān)開(kāi)放標(biāo)準(zhǔn)
  • 它使用了 Python 的類(lèi)型注解

示例如下:

先安裝依賴的庫(kù)

pip install fastapi
pip install uvicorn
import uvicorn
from fastapi import FastAPI

# 類(lèi)似于 app = Flask(__name__)
app = FastAPI()

# 綁定路由和視圖函數(shù)
@app.get("/")
async def root():
    return {"message": "Hi juejin"}

# 在 Windows 中必須加上 if __name__ == "__main__",否則會(huì)拋出 RuntimeError: This event loop is already running
if __name__ == '__main__':
    # 啟動(dòng)服務(wù),因?yàn)槲覀冞@個(gè)文件叫做 main.py,所以需要啟動(dòng) main.py 里面的 app
    # 第一個(gè)參數(shù) "main:app" 就表示這個(gè)含義,然后是 host 和 port 表示監(jiān)聽(tīng)的 ip 和端口
    uvicorn.run(app='main:app', host="127.0.0.1", port=8000, reload=True, debug=True)

FastAPI 的幾大功能:類(lèi)型檢查、自動(dòng) swagger UI、支持 asyncio、強(qiáng)大的依賴注入系統(tǒng)

總結(jié)

性能提升注: 以下針對(duì)生產(chǎn)環(huán)境的大型項(xiàng)目而言fastapi利用異步和輕量級(jí)的特點(diǎn),大大提升了性能。但異步應(yīng)用到實(shí)際中,并不是一件容易的事。fastapi的異步不算難寫(xiě),邏輯不復(fù)雜的話,閉著眼睛加幾個(gè)await很簡(jiǎn)單。但如果涉及到復(fù)雜系統(tǒng)。一處異步,處處異步。到底要不要用可能就見(jiàn)仁見(jiàn)智了。輕量級(jí)同時(shí)也代表著和flask一樣,很多東西需要自己diy。而不是像django一樣一站式解決。所以fastapi可能逐漸接過(guò)flask的位置,但還是難以對(duì)django發(fā)起挑戰(zhàn)。最重要的一點(diǎn)還是,選了python作為后端。可能打一開(kāi)始就不是對(duì)性能有多敏感。而是看中python的開(kāi)發(fā)效率和生態(tài)。如果從兼顧開(kāi)發(fā)效率+性能的角度出發(fā),那么fastapi極大程度上會(huì)遇到來(lái)自go的強(qiáng)力競(jìng)爭(zhēng)。只有再兼顧上python現(xiàn)有生態(tài),fastapi才會(huì)有很大的優(yōu)勢(shì)。我們可以假想一個(gè)現(xiàn)有python項(xiàng)目,遇到了性能瓶頸,但不想脫離python的環(huán)境,或者不想承受更換語(yǔ)言的成本。那么fastapi是個(gè)很好的未來(lái)。

API文檔、類(lèi)型檢測(cè)以及依賴注入fastapi完全擁抱了typing類(lèi)型系統(tǒng),高度整合了openapi(swagger ui),正如他的名字一樣fastapi,從api開(kāi)發(fā)的角度來(lái)說(shuō),無(wú)論是性能還是開(kāi)發(fā)效率,它都足夠“fast”。為api文檔提供了非常多的支持。無(wú)需任何配置,后端只要把endpoint寫(xiě)出來(lái),一份詳盡的api文檔就會(huì)自動(dòng)生成。對(duì)于小型項(xiàng)目來(lái)說(shuō)絕對(duì)是巨大優(yōu)勢(shì)。類(lèi)型檢測(cè)和依賴注入是api文檔的基石 ,它們重點(diǎn)在于圍繞框架的“感知力”。inspect抓endpoint的參數(shù),明確的知道每個(gè)api接口需要什么,返回什么。這會(huì)讓你感覺(jué)這個(gè)框架真的很有靈性。對(duì)于這方面我個(gè)人絕對(duì)是贊不絕口的。

簡(jiǎn)單與簡(jiǎn)潔會(huì)用flask就會(huì)fastapi,fastapi的學(xué)習(xí)曲線十分平滑。從下至上有很多值得學(xué)習(xí)參透的。非常建議有空的同學(xué)過(guò)一遍starlette,uvicorn,fastapi的源碼。加起來(lái)也沒(méi)有django多。

相關(guān)生態(tài)和社區(qū)還未成熟python的異步發(fā)展略為緩慢,僅僅fastapi還不能撐起一片天。例如現(xiàn)在還沒(méi)有完全可靠的異步orm。不少東西還需要自己造輪子。在小項(xiàng)目上,這可能影響不是很大。直接寫(xiě)代碼可能比配置插件來(lái)的快。但將很大程度上影響它被采用到線上生產(chǎn)環(huán)境。總結(jié)你可以將fastapi看成新出爐的flask plus。如果你有采用flask的理由,那么你同樣有將來(lái)采用fastapi的理由。

到此這篇關(guān)于python異步的ASGI與Fast Api實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python異步的ASGI與Fast Api內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:
  • Python多線程、異步+多進(jìn)程爬蟲(chóng)實(shí)現(xiàn)代碼
  • 在Python中使用異步Socket編程性能測(cè)試
  • python如何實(shí)現(xiàn)異步調(diào)用函數(shù)執(zhí)行
  • Python的Tornado框架實(shí)現(xiàn)異步非阻塞訪問(wèn)數(shù)據(jù)庫(kù)的示例
  • python使用multiprocessing模塊實(shí)現(xiàn)帶回調(diào)函數(shù)的異步調(diào)用方法
  • python并發(fā)編程之多進(jìn)程、多線程、異步和協(xié)程詳解
  • 跨平臺(tái)python異步回調(diào)機(jī)制實(shí)現(xiàn)和使用方法
  • python并發(fā)和異步編程實(shí)例

標(biāo)簽:上饒 西寧 佳木斯 湖北 盤(pán)錦 宜昌 珠海 潮州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python異步的ASGI與Fast Api實(shí)現(xiàn)》,本文關(guān)鍵詞  python,異步,的,ASGI,與,Fast,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python異步的ASGI與Fast Api實(shí)現(xiàn)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于python異步的ASGI與Fast Api實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    日韩精品一区二区在线| 另类中文字幕网| 成人免费av网站| 永久免费观看片现看| 精品国产91久久久久久久妲己 | 又大又长粗又爽又黄少妇视频| 男的操女的网站| 中文在线免费一区三区高中清不卡| 九色porny丨国产精品| 中文字幕丰满乱子伦无码专区| 日韩视频在线观看一区二区| 日本三级亚洲精品| 女尊高h男高潮呻吟| 日韩欧美一卡二卡| 久久狠狠亚洲综合| 公肉吊粗大爽色翁浪妇视频| 久久久久久一二三区| 国内久久精品视频| 日本伦理一区二区三区| 中文字幕免费在线观看视频一区| 国产盗摄一区二区| 麻豆精品一区二区三区视频| 亚洲欧美成人一区二区三区| 99国产精品国产精品久久| 色女孩综合影院| 亚洲最新在线观看| 理论片大全免费理伦片| 日韩视频在线永久播放| 激情图片小说一区| √天堂中文官网8在线| 亚洲精选在线视频| 欧美xxxxx少妇| 欧美变态tickle挠乳网站| 精品一区免费av| 我要看黄色一级片| 亚洲精品成人少妇| 最近日本中文字幕| 久久综合成人精品亚洲另类欧美| 国产成人午夜视频| 欧美怡红院视频| 日韩电影网1区2区| www.涩涩爱| 亚洲欧美日韩国产综合| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 欧美日韩一卡二卡三卡 | 久久精品视频网| 成人免费电影视频| 欧美军同video69gay| 伦理电影国产精品| 欧美做爰爽爽爽爽爽爽| 亚洲第一狼人社区| 99精品欧美一区二区| 亚洲特级片在线| 手机在线成人av| 国产欧美精品国产国产专区| 91蝌蚪porny| 日韩精品一区二区三区老鸭窝| 国产精品888| 欧美日韩国产一级片| 精品一区二区三区在线观看国产| 国内偷拍精品视频| 日本亚洲最大的色成网站www| 成年人视频软件| 亚洲国产成人av| 人妻互换一区二区激情偷拍| 亚洲自拍偷拍欧美| 极品久久久久久久| 亚洲与欧洲av电影| 天堂网av2018| 午夜精品久久久久久久久久久 | 东京热无码av男人的天堂| 一区二区三区在线免费视频| 中文字幕免费高清| 亚洲精品免费视频| 黄色免费一级视频| 午夜激情久久久| 色综合一个色综合亚洲| 久久精品国产精品青草| 欧美亚男人的天堂| 国产精品一区二区久久不卡 | av不卡一区二区三区| 欧美大黄免费观看| 黄色片子免费看| 国产拍揄自揄精品视频麻豆| 亚洲精品国产成人av在线| 综合久久给合久久狠狠狠97色 | 91成人在线观看喷潮| 久久99精品久久久| 欧美日本不卡视频| 99久久婷婷国产综合精品电影| 26uuu精品一区二区在线观看| 少妇极品熟妇人妻无码| 国产精品福利一区二区| 在线看片中文字幕| 日本中文字幕不卡| 欧美三级中文字幕| 成人白浆超碰人人人人| 久久精品免视看| 黄色在线观看av| 中文字幕第24页| 日韩精品一级中文字幕精品视频免费观看 | 麻豆国产精品一区二区三区| 欧美日本免费一区二区三区| 成人美女视频在线观看18| 久久久久久久久99精品| aaaaa级少妇高潮大片免费看| 亚洲成人资源在线| 色丁香久综合在线久综合在线观看| 国产九色精品成人porny| 欧美一区二区三区性视频| 师生出轨h灌满了1v1| 亚洲欧美日本韩国| 一本色道久久综合亚洲91| 国产盗摄一区二区三区| 国产网站一区二区三区| 日本一级免费视频| 美国毛片一区二区三区| 日韩一区二区三区电影在线观看| 在线播放第一页| 一区二区欧美视频| 欧美伊人久久久久久久久影院| 91香蕉视频在线| 亚洲欧美另类久久久精品2019| 色综合一个色综合亚洲| 99国产精品一区| 亚洲乱码中文字幕| 欧美这里有精品| 在线观看你懂的视频| 亚洲国产婷婷综合在线精品| 欧美日韩在线电影| 怡红院一区二区| 视频一区二区国产| 精品区一区二区| 国产探花视频在线播放| 国产美女在线精品| 中文av字幕一区| 色综合久久综合网欧美综合网 | 成人午夜视频网站| 日韩一区在线播放| 一本一道久久a久久精品综合蜜臀| 成人网在线免费视频| 亚洲视频在线一区二区| 在线免费亚洲电影| 国产一精品一aⅴ一免费| 性欧美大战久久久久久久久| 日韩一级二级三级| 精品无码人妻一区二区免费蜜桃 | 欧美mv日韩mv| 中文字幕黄色网址| 粉嫩av一区二区三区| 亚洲人精品一区| 欧美日韩精品二区第二页| 精品无码国产一区二区三区51安| 麻豆精品国产91久久久久久| 久久久噜噜噜久久人人看 | 久久精工是国产品牌吗| 国产午夜精品久久| 国产一区二区三区免费播放| 国产午夜精品福利| 日本精品视频一区二区| 一边摸一边做爽的视频17国产| 蜜臀av一级做a爰片久久| 国产午夜精品福利| 在线日韩一区二区| 黄色av网址在线观看| 狠狠色丁香婷婷综合| 中文字幕一区二区三区不卡在线| 欧美日韩中字一区| 亚洲一区二区三区蜜桃| 国产99久久久国产精品潘金网站| 亚洲精品免费在线| 欧美成人官网二区| 午夜免费激情视频| 久久福利小视频| 粉嫩av亚洲一区二区图片| 亚洲bt欧美bt精品| 国产区在线观看成人精品| 欧美亚洲国产怡红院影院| xxxx日本黄色| 久久综合桃花网| 精品在线你懂的| 亚洲激情中文1区| 精品国产乱码久久久久久夜甘婷婷 | 欧美一区二区黄| 91香蕉视频在线播放| 日本一级片在线播放| 国产白丝精品91爽爽久久| 亚洲va中文字幕| 中文字幕av免费专区久久| 91精品国产综合久久精品app| 一级免费黄色录像| 国产一卡二卡三卡四卡| 国产91精品露脸国语对白| 婷婷六月综合网| 中文字幕一区二区三区在线播放 | 成人性生活免费看| 国产成人免费在线观看不卡| 午夜视频在线观看一区二区三区| 国产欧美日韩精品一区| 欧美一级日韩一级|