查询参数和字符串校验
提供了该参数,则该参数值不能超过50个字符的长度
将 Query 用作查询参数的默认值,并将它的 max_length 参数设置为 50:
q: str = Query(None, max_length=50)
添加正则表达式
你可以定义一个参数值必须匹配的正则表达式:regex=“^fixedquery$”
from typing import Optional
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
async def read_items(
q: Optional[str] = Query(None, min_length=3, max_length=50, regex="^fixedquery$")#regex正则查询,精确值查询
):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
这个指定的正则表达式通过以下规则检查接收到的参数值:
^:以该符号之后的字符开头,符号之前没有字符。
fixedquery: 值精确地等于 fixedquery。
$: 到此结束,在 fixedquery 之后没有更多字符。
默认值
你可以向 Query 的第一个参数传入 None 用作查询参数的默认值,以同样的方式你也可以传递其他默认值。
假设你想要声明查询参数 q,使其 min_length 为 3,并且默认值为 fixedquery:
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/items/")
async def read_items(q: str = Query("fixedquery", min_length=3)):
results = {"items": [{"item_id": "Foo"}, {"item_id": "Bar"}]}
if q:
results.update({"q": q})
return results
https://www.w3cschool.cn/fastapi/fastapi-o6dx3lc6.html