日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python異步的ASGI與Fast Api實現

瀏覽:208日期:2022-06-15 08:00:17
目錄ASGI框架ASGI服務器FastAPI總結

Asgi是異步通信服務規范。客戶端發起服務呼叫,但不等待結果。調用方立即繼續其工作,并不關心結果。如果調用方對結果感興趣,有一些機制可以讓其隨時被回調方法返回結果。

ASGI嘗試保持在一個簡單的應用接口的前提下,提供允許數據能夠在任意的時候、被任意應用進程發送和接受的抽象。并且同樣描述了一個新的,兼容HTTP請求響應以及WebSocket數據幀的序列格式。允許這些協議能通過網絡或本地socket進行傳輸,以及讓不同的協議被分配到不同的進程中。

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

您可以使用 Uvicorn,Daphne 或 Hypercorn 運行任何 ASGI 框架

對于小型服務,您也可以直接編寫 ASGI 應用程序。例如之前編寫的異步框架。

Python 中有以下幾個支持 ASGI 的異步框架

StarletteStarlette 是一個輕量級的 ASGI 框架/工具包。它是構建高性能異步服務的理想選擇,并且支持 HTTP 和 WebSockets。

Django ChannelsASGI 規范最初是設計就是用于 Django Channels 的。Channels 與其他ASGI框架略有不同,它在線程框架后端上提供了異步前端。同時 Django Channels 支持 WebSocket,后臺任務和長期運行的連接,而應用程序代碼仍在標準線程上下文中運行

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

一個簡單的 Quart 服務:

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

和 Flask 是不是很像,只是多了一個異步 async由于 Quart 是從 Flask 中演進過來的,因此 Flask 的所有功能均可用:路由,中間件,會話,模板,藍圖等

ASGI服務器

Uvicorn 是一個快速的 ASGI 服務器,Uvicorn 是基于 uvloop 和 httptools 構建的,是 Python 異步生態中重要的一員。Uvicorn 當前支持 HTTP / 1.1 和 WebSockets,將來計劃支持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!’, })

運行命令如下,

uvicorn demo:app服務啟動之后,我們通過瀏覽器就能方位該服務,默認端口 8000

DaphneDaphne 服務器是最早為 Django Channels 提供支持的 ASGI 服務器Daphne 它在生產中廣泛運行,并支持HTTP / 1.1,HTTP / 2和 WebSockets。

安裝和運行的命令如下:

pip install daphne daphne app:App和 uvicorn 命令類似,app 是文件名稱,APP 是應用程序

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

FastAPI

FastAPI 是一個基于 Starlette 和 Pydantic 的 API 框架,其靈感來自以前的 APISta 服務器版本使用 Python 3.6+ 類型聲明編寫 API 函數參數,并獲得自動數據轉換,數據驗證。FastApi 最主要的特點是快,非常高的性能,向 NodeJS 和 Go 看齊,現有最快的Python框架之一同時它可以自動生成交互式 API 文檔 UI,編寫 API 接口后,你就可以使用符合標準的 UI 如 SwaggerUI,ReDoc 等來使用 API。

其特點如下:

快速:擁有非常高的性能,歸功于 Starlette 和 Pydantic;Starlette 用于路由匹配,Pydantic 用于數據驗證 開發效率:功能開發效率提升 200% 到 300% 減少 bug:減少 40% 的因為開發者粗心導致的錯誤 智能:內部的類型注解非常完善,編輯器可處處自動補全 簡單:框架易于使用,文檔易于閱讀 簡短:使代碼重復最小化,通過不同的參數聲明實現豐富的功能 健壯:可以編寫出線上使用的代碼,并且會自動生成交互式文檔 標準化:兼容 API 相關開放標準 它使用了 Python 的類型注解

示例如下:

先安裝依賴的庫

pip install fastapipip install uvicorn

import uvicornfrom fastapi import FastAPI# 類似于 app = Flask(__name__)app = FastAPI()# 綁定路由和視圖函數@app.get('/')async def root(): return {'message': 'Hi juejin'}# 在 Windows 中必須加上 if __name__ == '__main__',否則會拋出 RuntimeError: This event loop is already runningif __name__ == ’__main__’: # 啟動服務,因為我們這個文件叫做 main.py,所以需要啟動 main.py 里面的 app # 第一個參數 'main:app' 就表示這個含義,然后是 host 和 port 表示監聽的 ip 和端口 uvicorn.run(app=’main:app’, host='127.0.0.1', port=8000, reload=True, debug=True)

FastAPI 的幾大功能:類型檢查、自動 swagger UI、支持 asyncio、強大的依賴注入系統

總結

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

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

簡單與簡潔會用flask就會fastapi,fastapi的學習曲線十分平滑。從下至上有很多值得學習參透的。非常建議有空的同學過一遍starlette,uvicorn,fastapi的源碼。加起來也沒有django多。

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

到此這篇關于python異步的ASGI與Fast Api實現的文章就介紹到這了,更多相關python異步的ASGI與Fast Api內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚州av乱码久久精品蜜桃| 国产亚洲欧美日韩在线观看一区二区| 国产精品亚洲欧美一级在线| 日本亚洲视频| 亚洲精品字幕| 日韩国产在线不卡视频| 奇米亚洲欧美| 国产免费播放一区二区| 国产精品videossex久久发布| 丝袜国产日韩另类美女| 蜜臀av一区二区三区| 亚洲97av| 国产精品igao视频网网址不卡日韩| 国产精品激情| 国产精品久久久久蜜臀| 日本午夜大片a在线观看| 国产亚洲一区二区手机在线观看| 蜜臀国产一区| 国产精品av一区二区| 野花国产精品入口| 天堂精品久久久久| 国产免费av国片精品草莓男男| 欧美aaaaaa午夜精品| 国产理论在线| 亚洲精品成人| 日本不卡一区二区三区| 麻豆精品蜜桃视频网站| 久久天堂av| 免费不卡在线观看| 国产精品宾馆| 日韩另类视频| 视频一区视频二区中文| 91亚洲精品视频在线观看| 另类欧美日韩国产在线| 久久一区二区三区电影| 亚洲日产国产精品| 精品国产一区二区三区噜噜噜| 亲子伦视频一区二区三区| 免费成人在线观看| 国产精品sss在线观看av| 精品三级久久| 亚洲精品第一| 精品视频黄色| 亚洲一区二区三区高清不卡| 欧美视频一区| 日韩不卡免费高清视频| 少妇精品久久久一区二区| 乱一区二区av| 久久福利影视| 免费亚洲婷婷| 一区在线观看| 久久久久亚洲精品中文字幕| 99国产精品视频免费观看一公开| 国产精品美女午夜爽爽| 久久精品亚洲欧美日韩精品中文字幕| 在线免费观看亚洲| 黄色在线网站噜噜噜| 蜜桃视频免费观看一区| zzzwww在线看片免费| 日韩欧美久久| 136国产福利精品导航网址| 日韩精品一区二区三区中文在线| 日韩综合精品| 国产日韩欧美一区| 亚洲经典在线| a国产在线视频| 日精品一区二区三区| 久久蜜桃av| 久久精品二区亚洲w码| 麻豆91精品| av资源中文在线| 青青草91久久久久久久久| 欧美日韩在线观看视频小说| 国产精品4hu.www| 久久国产精品亚洲77777| 国产精品久久久久久久免费观看 | 亚洲免费福利| 亚洲狼人精品一区二区三区| 欧产日产国产精品视频| 国产伦一区二区三区| 免费日韩av片| 人人精品亚洲| 久久精品国产99国产精品| 亚洲开心激情| 黄色亚洲精品| 日本久久成人网| 精品视频一区二区三区在线观看 | 美国欧美日韩国产在线播放| 国产理论在线| 国产极品模特精品一二| 亚洲一区二区三区在线免费| 国内激情久久| 欧美天堂视频| 国产一区二区亚洲| 国产精品中文字幕亚洲欧美| 亚洲精品黄色| 在线午夜精品| 蜜臀91精品国产高清在线观看 | 麻豆成人综合网| 国产欧美日韩影院| 日韩一区二区三区在线看| 国产色综合网| 成人羞羞在线观看网站| 成人午夜网址| 欧美经典一区| 国产精品一站二站| 国产欧美日韩一区二区三区四区 | 日韩欧美另类中文字幕| 亚洲久久视频| 天堂va蜜桃一区二区三区| 国产精品88久久久久久| 91精品国产91久久久久久黑人| а√天堂8资源在线| 97欧美在线视频| 国产一区二区三区视频在线| 国产精品视频一区二区三区综合| 日韩av中文在线观看| 日韩精品一级| 日韩精品欧美大片| 日本a口亚洲| 国产精品一区毛片| 国产精品久久久久毛片大屁完整版| 色8久久久久| 日韩1区2区3区| 欧美一级网站| 国产无遮挡裸体免费久久| 免费观看在线综合| 亚洲精品麻豆| 日本少妇一区二区| 国产精品久久久免费| 久久一区国产| 国产日韩电影| 久久国产中文字幕| 麻豆久久精品| 日韩二区三区在线观看| 国产精品任我爽爆在线播放| 精品一区二区三区亚洲| 91av亚洲| 在线综合亚洲| 亚洲欧美网站在线观看| 日韩av网站在线观看| 国产精品亚洲欧美日韩一区在线| 久久影院一区二区三区| 高清在线一区| 亚洲电影有码| 黑丝一区二区| 日韩精品免费观看视频| 国产精品99久久免费| caoporn视频在线| 欧洲激情综合| 日本在线成人| 久久久久久婷| 亚洲国产一区二区三区在线播放| 蜜臀av性久久久久蜜臀aⅴ四虎| 清纯唯美亚洲综合一区| 国产精品久久| 99久久亚洲精品蜜臀| 视频一区二区中文字幕| 久久精品999| 在线看片福利| 国产麻豆综合| 老司机免费视频一区二区| 欧美日韩尤物久久| 免费久久99精品国产| 国产精品一区二区三区美女 | 91麻豆精品激情在线观看最新| 久久99蜜桃| 久久精品亚洲人成影院| 亚洲欧美日本国产| 精品国产一级| 欧美日韩国产综合网| 欧美亚洲综合视频| 在线天堂资源www在线污| 国产一区成人| 久久影视三级福利片| 亚洲欧美视频| 卡一精品卡二卡三网站乱码| 女人天堂亚洲aⅴ在线观看| 欧美日韩xxxx| 日韩电影免费网站| 亚洲精品少妇| 久久久一二三| 国产日韩三级| 9色国产精品| 国产精品伦理久久久久久| 亚洲欧洲免费| 日本精品不卡| 久久精品99国产精品| 欧美福利一区| 国产极品模特精品一二| 国产午夜精品一区二区三区欧美| 国产精品嫩草影院在线看| 欧美~级网站不卡| 国产精品99久久久久久董美香| 精品一区欧美| 精品久久国产一区| 中文字幕成人| 精品日韩视频| 欧美aⅴ一区二区三区视频| 视频在线观看一区|