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


系列文章:

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

  FastAPI 學習之路(二)

  FastAPI 學習之路(三)

  FastAPI 學習之路(四)

  FastAPI 學習之路(五)

本次分享的是分享的是查詢參數,字符串的校驗。

    我們看一個demo。

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

    我們不去傳遞參數的時候請求下,

 

       當我們傳遞了m的時候,我們看下結果。

 

 

我們看了下,結果是是更新了。

       增加校驗 ,我們打算添加約束條件:即使 m 是可選的,但只要提供了該參數,則該參數值不能超過2的長度。

      我們看下如何實現

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

我們傳遞下看看是否滿足,我們傳遞一個超過2個字符串的。結果返回如下。

 

 這是超過了長度,當我們不超過長度的時候呢,就可以正常更新。

 

 

  如果我們要求最長的不能超過10個字符,最短不能低於5個字符串怎么實現呢。

 

from typing import Optional

from fastapi import FastAPI,Query

app = FastAPI()
@app.get("/items/")
async def update_items(m: Optional[str] =  Query(None, max_length=10,min_length=5)):
    results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
    if m:
        results.update({"shanghai": m})
    return results

 我們看下傳遞低於5個。

 

 

 長度大於10個,接口已經給我們返回的錯誤的原因。

 

 

 合適的長度,我們看下接口的請求

 

 

 我們還有這樣的一個需求,我們需要匹配參數,參數開頭包含name的。如何實現。

from typing import Optional
from fastapi import FastAPI,Query
app = FastAPI()
@app.get("/items/")
async def update_items(m: Optional[str] =  Query(None, regex='^name',max_length=10,min_length=5)):
    results = {"items": [{"oneid": "shanghai"}, {"two": "beijing"}]}
    if m:
        results.update({"shanghai": m})
    return results

我們請求下,看下是否滿足,當我們請求不滿足需求的時候,

 

 

 那我們看下,滿足需求的請求,如何返回。

 

 

 我們看到了,接口可以正常返回。

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

 


免責聲明!

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



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