在 FastAPI 中使用 Annotated 会忽略 Query 中设置的规则

问题描述 投票:0回答:1

我开始学习Python和FastAPI但是我遇到了一个奇怪的事情。当我设置

@app.get("/test")
async def test(q: str = Query(min_length=3)):
    return q

它正确地检查 q 是否至少有 3 个字符,但是当我按照文档中的建议这样做时

@app.get("/test")
async def test(q: Annotated[str, Query(min_length=3)]):
    return q

它忽略了

min_length
规则,只检查q是否存在,有什么原因会发生吗?我正在使用 Python 3.10.10 和 FastAPI 0.94.1

python fastapi python-typing
1个回答
1
投票

我也有这个问题。

Annotate
功能仅适用于 FastAPI 版本 0.95+.

随心所欲

pip install --upgrade fastapi

升级到最新版本,问题解决。

© www.soinside.com 2019 - 2024. All rights reserved.