系列文章:
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
我們請求下,看下是否滿足,當我們請求不滿足需求的時候,

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

我們看到了,介面可以正常回傳,
文章首發在公眾號,歡迎關注,

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