本系列參考FastAPI官方文檔:https://fastapi.tiangolo.com/zh/python-types/
安裝
使用pip安裝:
pip install fastapi
此外還需要 ASGI 服務器,生產環境可以使用 Uvicorn 或者 Hypercorn。
ASGI服務器:異步服務網關接口,處理網絡協議(HTTP/WebSocket等),將請求轉發給FastAPI應用。相當于Tomcat
pip install "uvicorn[standard]"
Pydantic
Pydantic 是 FastAPI 的核心依賴庫,用于實現 結構化數據驗證和數據轉換,相當于 Java 中的 Bean Validation (JSR ) 的聲明式驗證機制,但功能更強大
并發、并行
概念 | 核心思想 |
---|---|
并發 (Concurrency) | 同時管理多個任務,但不一定同時執行(通過任務切換實現) |
并行 (Parallelism) | 同時執行多個任務,需要多核/多CPU硬件支持 |
在需要大量等待的場景下,并發性能更好。因此在Web場景中需要使用異步編程(實現并發的一種手段)
異步編程
使用await關鍵字實現異步編程:
burgers = await get_burgers(2)
await關鍵字必須用于async def聲明的協程函數中:
async def get_burgers(number: int):# Do some asynchronous stuff to create the burgersreturn burgers
協程函數調用時必須使用await關鍵字
@app.get('/burgers')
async def read_burgers():burgers = await get_burgers(2)return burgers