FastAPI 學習之路(四)


系列文章:

  FastAPI 學習之路(一)fastapi--高性能web開發框架

  FastAPI 學習之路(二)

  FastAPI 學習之路(三)

  之前的文章分享了如何去在請求中增加參數,本文我們將分享如何增加查詢參數。

有這樣的一個需求,我們需要請求參數中增加參數,返回對應參數的值,我們不能在請求路徑中增加。

            我們看下在代碼中如何實現?

        

from fastapi import FastAPI
app = FastAPI()
data=['北京','上海','深圳']
@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=['北京','上海','深圳']

@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參數,看下接口的返回

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM