FastAPI 學習之路(七)字符串的校驗


系列文章:

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

  FastAPI 學習之路(二)

  FastAPI 學習之路(三)

  FastAPI 學習之路(四)

  FastAPI 學習之路(五)

      FastAPI 學習之路(六)查詢參數,字符串的校驗

我們之前在聲明必須的參數的時候呢,我們沒有對長度做限定,現在我們要限定長度,長度8-16位。我們怎么來實現這個需求呢。

from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
def read(paword: str = Query(..., min_length=8,max_length=16)):
    results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
    if paword:
        results.update({"paword": paword})
    return results

  其實實現起來很簡單。這里需要說明:當你在使用 Query 且需要聲明一個值是必需的時,可以將 ... 用作第一個參數值。

         那么我們去請求下。測試用例如下:

        1.沒有傳遞paword參數。結果如下:

 

 

   2.傳遞參數,但是長度不滿足

 

 

 

 

 

  兩個長度一個是小於8位,一個是大於16位。

 3.傳遞正確長度參數

 

 

 

 我們假設的需求滿足了。可能有人會問...,可以看官方文檔的https://docs.python.org/3/library/constants.html#Ellipsis有介紹。

當我們傳遞 多個值,應該如何實現呢

from fastapi import FastAPI, Query
from typing import List, Optional
app = FastAPI()
@app.get("/items/")
def read(paword: Optional[List[str]] = Query(None)):
    results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
    if paword:
        results.update({"paword": paword})
    return results

其實很簡單,就是傳遞一個list的參數,那么我們去請求下。

        1.輸入兩個字測試,

 

  2.輸入兩個值測試

 

      這樣滿足了我們的需求,我們可以看下接口文檔。

 

 

 接口文檔我們也是可以傳遞多個參數的。當然我們在query還可以傳遞很多內容,如:

     alias#別名參數

         

     title#標題

 

          description #描述,會在借口文檔有表述

deprecated#棄用參數

 

還有特定的校驗

 

    • min_length

    • max_length

    • regex

 

文章首發在公眾號,歡迎關注。


免責聲明!

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



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