婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > python異步的ASGI與Fast Api實現

python異步的ASGI與Fast Api實現

熱門標簽:煙臺電話外呼營銷系統 企業彩鈴地圖標注 電銷機器人錄音要學習什么 外賣地址有什么地圖標注 預覽式外呼系統 如何地圖標注公司 長春極信防封電銷卡批發 銀川電話機器人電話 上海正規的外呼系統最新報價

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 的異步框架

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

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

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

一個簡單的 Quart 服務:

from quart import Quart
app = 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

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

安裝和運行的命令如下:

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

Hypercorn
Hypercorn 最初是框架 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 fastapi
pip install uvicorn
import uvicorn
from 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 running
if __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多線程、異步+多進程爬蟲實現代碼
  • 在Python中使用異步Socket編程性能測試
  • python如何實現異步調用函數執行
  • Python的Tornado框架實現異步非阻塞訪問數據庫的示例
  • python使用multiprocessing模塊實現帶回調函數的異步調用方法
  • python并發編程之多進程、多線程、異步和協程詳解
  • 跨平臺python異步回調機制實現和使用方法
  • python并發和異步編程實例

標簽:上饒 西寧 佳木斯 湖北 盤錦 宜昌 珠海 潮州

巨人網絡通訊聲明:本文標題《python異步的ASGI與Fast Api實現》,本文關鍵詞  python,異步,的,ASGI,與,Fast,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python異步的ASGI與Fast Api實現》相關的同類信息!
  • 本頁收集關于python異步的ASGI與Fast Api實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    本田岬高潮一区二区三区| 美国毛片一区二区| 国产亚洲精品资源在线26u| 一区二区三区成人| 中文字幕人成不卡一区| 秋霞国产午夜精品免费视频| 国产一区二区日韩精品| 欧美日韩高清一区二区不卡| www国产精品av| 免费精品视频在线| 欧美精品一级二级| 亚洲婷婷国产精品电影人久久| 国产一区二区精品久久91| 91麻豆精品国产| 日韩精品一卡二卡三卡四卡无卡| 日本麻豆一区二区三区视频| 在线日韩av片| 亚洲视频香蕉人妖| av在线不卡电影| 亚洲国产高清在线| 丰满放荡岳乱妇91ww| 国产亚洲一二三区| 国产电影精品久久禁18| 久久亚洲一区二区三区明星换脸| 免费成人在线观看| 精品国产一区二区三区久久影院| 免费观看91视频大全| 日本精品裸体写真集在线观看| 中文字幕综合网| 在线观看亚洲a| 日韩一区欧美二区| 欧美精品一区二区久久婷婷| 免费人成在线不卡| 精品剧情在线观看| 久久99九九99精品| 国产日韩v精品一区二区| 成人免费毛片aaaaa**| 悠悠色在线精品| 欧美福利视频一区| 久久综合综合久久综合| 亚洲国产电影在线观看| 一本到不卡精品视频在线观看 | 日韩国产成人精品| 91精品国产91久久久久久一区二区| 人人爽香蕉精品| 国产欧美精品在线观看| 色av综合在线| 精品综合免费视频观看| 国产日韩精品视频一区| 日本精品免费观看高清观看| 日韩精品一区第一页| 久久老女人爱爱| 国产成都精品91一区二区三| 国产日韩欧美高清在线| 美国欧美日韩国产在线播放| 欧美精品一二三区| www.激情成人| 久久精品国产精品亚洲综合| 最新国产成人在线观看| 日韩精品专区在线影院观看| eeuss鲁一区二区三区| 舔着乳尖日韩一区| 国产亚洲女人久久久久毛片| 欧美日韩国产一区| 成人av在线一区二区三区| 亚洲成人动漫在线观看| 中文字幕av一区二区三区高 | 一区二区三区蜜桃| 日韩一区二区三区观看| 色综合久久中文字幕综合网| 久久精品二区亚洲w码| 日韩精品一区二区三区在线播放 | 麻豆中文一区二区| 亚洲免费电影在线| 久久久不卡影院| 欧美一级片免费看| 欧美日韩五月天| 中文一区在线播放| 欧美成人aa大片| 欧美一卡在线观看| 欧美高清hd18日本| 99精品偷自拍| 亚洲国产精品久久不卡毛片 | 粉嫩av一区二区三区| 亚洲电影激情视频网站| 国产精品福利电影一区二区三区四区| 日韩一区二区三区免费看| 欧美日韩一区中文字幕| 精品一区二区三区视频在线观看| 亚洲国产精品人人做人人爽| 亚洲精品高清在线| 亚洲欧美电影一区二区| 国产精品成人在线观看| 中文字幕av一区二区三区| 国产精品久久久久久妇女6080| 欧美老肥妇做.爰bbww| 精品视频1区2区3区| 欧美日韩精品欧美日韩精品| 欧美色图第一页| 99re这里只有精品首页| 伊人一区二区三区| 亚洲视频一区二区在线观看| 亚洲伦理在线免费看| 综合电影一区二区三区 | 91精品国产欧美一区二区18| 欧美绝品在线观看成人午夜影视| 国产a区久久久| 国产精一区二区三区| 高清av一区二区| av高清久久久| 在线观看www91| 欧美午夜精品免费| 欧美日韩高清影院| 一本大道久久精品懂色aⅴ| 色88888久久久久久影院按摩| 91高清视频免费看| 日韩一卡二卡三卡国产欧美| 国产不卡一区视频| 色婷婷综合激情| 欧美成人精品1314www| 日本一区二区三区国色天香| 亚洲精品中文字幕乱码三区| 日韩精品电影一区亚洲| 国产麻豆精品theporn| 色哟哟国产精品| 日韩精品在线一区| 亚洲日本一区二区三区| 久久99蜜桃精品| 国产美女娇喘av呻吟久久| 91麻豆免费视频| 久久先锋影音av| 午夜精品一区二区三区三上悠亚| 国产乱妇无码大片在线观看| 欧美色图在线观看| 国产精品麻豆一区二区| 亚洲乱码中文字幕综合| 国产一区二区伦理| 久久久噜噜噜久久人人看 | voyeur盗摄精品| 亚洲国产精品t66y| 国产乱一区二区| 精品国产第一区二区三区观看体验| 麻豆91精品视频| 日韩欧美成人激情| 免费看精品久久片| 日韩美女一区二区三区四区| 久久精品国产第一区二区三区| 91精品国产综合久久精品app | 中文字幕视频一区| 丁香另类激情小说| 国产精品沙发午睡系列990531| 国产精品123区| 国产日韩在线不卡| 成人黄色在线网站| 国产精品久久一级| 91福利视频在线| 亚洲成人免费观看| 亚洲精品在线观看网站| 国产精品自拍av| 国产精品色在线观看| 91麻豆免费观看| 日韩福利视频网| 精品国产91洋老外米糕| 北条麻妃国产九九精品视频| 亚洲一区二区中文在线| 日韩一二三四区| 成人性生交大片免费看中文 | 国产成人综合精品三级| 国产精品免费丝袜| 欧美影院精品一区| 国产资源精品在线观看| 中文字幕一区二区三区视频| 欧美三级电影网站| 久久99精品久久久| 最新成人av在线| 欧美一区二区三区在线看| 国产精品超碰97尤物18| 欧美一区二区三区免费大片| 成人永久免费视频| 亚洲国产精品久久久男人的天堂 | 99麻豆久久久国产精品免费优播| 一区二区三区日本| 精品国产99国产精品| 91久久香蕉国产日韩欧美9色| 日韩黄色免费电影| 国产精品三级久久久久三级| 欧美日高清视频| 99久久精品免费看| 激情久久久久久久久久久久久久久久| 亚洲欧美综合色| 日韩精品一区二区三区视频| 一本大道综合伊人精品热热| 国产综合久久久久久久久久久久| 亚洲大片在线观看| 国产精品久久久久一区 | 欧美日韩一级片在线观看| 丁香婷婷深情五月亚洲| 免费成人在线视频观看| 一区二区三区在线看| 国产精品美女久久久久aⅴ国产馆|