系列文章:
FastAPI 學習之路(一)fastapi--高性能web開發框架
與使用 Query
為查詢參數聲明更多的校驗和元數據的方式相同,你也可以使用 Path
為路徑參數聲明相同類型的校驗和元數據。我們看下如何來實現
from fastapi import FastAPI, Path, Query app = FastAPI() @app.get("/items/{id}") def read_items( id: int = Path(..., title="id"), q: Optional[str] = Query(None, alias="item-query"), ): results = {"item_id": id} if q: results.update({"q": q}) return results
我們看下在接口文檔的請求。
可以正常請求,我們可以看到,我們q參數在請求的時候是使用item-query 請求的。正常我們接受是用q接受即可。
對於必需參數,我們沒有順序要求,但是有默認值的參數必須放在沒有默認值的后面,不然python會報錯。我們可以代碼去演示下如下圖:
如果我們想對參數排序怎么做呢,很簡單。
from fastapi import FastAPI, Path, Query app = FastAPI() @app.get("/items") def read_items(*, id: int,q:str ): results = {"item_id": id} if q: results.update({"q": q}) return results
我們會有這樣的需求,讓id大於多少才給返回,如何實現呢
from fastapi import FastAPI,Query app = FastAPI() @app.get("/items") def read_items(*,id: int=Query(...,ge=5,),q:str): results = {"item_id": id} if q: results.update({"q": q}) return results
我們來請求下看下結果
那么當我們大於5的時候請求。
這樣就滿足了我們的需求啊。還有大於和小於等於
而且你還可以聲明數值校驗:
gt:大於(greater than)
ge:大於等於(greater than or equal)
lt:小於(less than)
le:小於等於(less than or equal)
文章首發在公眾號,歡迎關注。