系列文章:
FastAPI 學習之路(一)fastapi--高性能web開發框架
FastAPI 學習之路(二)
FastAPI 學習之路(三)
之前的文章分享了如何去在請求中增加引數,本文我們將分享如何增加查詢引數,
有這樣的一個需求,我們需要請求引數中增加引數,回傳對應引數的值,我們不能在請求路徑中增加,
我們看下在代碼中如何實作?
from fastapi import FastAPI
app = FastAPI()
data=https://www.cnblogs.com/leiziv5/p/['北京','上海','深圳']
@app.get("/items/")
def read_item(start: int = 0, end: int = 2):
return data[start:end]
我們默認規定了兩個引數,一個是start另一個是end,初始值是0和2,那么我看下請求結果

那么我們看下增加引數如何回傳

可以正常回傳介面引陣列合回傳的結果,錯誤的型別回傳

所以,當宣告了 Python 型別(在上面的示例中為 int)時,它們將轉換為該型別并針對該型別進行校驗,
我們在上面的請求中,我們默認給了默認值,當我們沒有給引數的是時候,實際就是,
#請求地址 http://127.0.0.1:8000/items/ #實際相當于 http://127.0.0.1:8000/items/?start=0&end=2
那么假如我們有這樣的一個需求,引數end是可選擇的引數,有end就回傳需求的,沒有end 回傳所有的,如何實作呢
from fastapi import FastAPI
from typing import Optional
app = FastAPI()
data=https://www.cnblogs.com/leiziv5/p/['北京','上海','深圳']
@app.get("/items/")
def read_item(start: int = 0, end: Optional[int] =None):
if end:
return data[start:end]
return data[start:-1]
我們不傳入end引數,介面回傳

當我們傳遞end引數,默認回傳

這樣我們的需求就完成了,
引數在請求到后端默認給我們轉化了,當我們傳入的end或者start的型別不對的時候,


這樣就是引數型別是自動去轉化的,
有這樣的一個需求,我們希望start是一個必填的引數,end是一個可以選填的引數,我們應該如何去實作呢,代碼如下:
from fastapi import FastAPI from typing import Optional app = FastAPI() data=['北京','上海','深圳'] @app.get("/items/") def read_item(start: int , end: Optional[int] =None): if end: return data[start:end] return data[start:-1]
我們去請求下:

當我們輸入start引數,看下介面的回傳

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/302899.html
標籤:Python
