· 约 2 分钟

07-FastAPI基础入门-查询参数和Query类型注解

  • FastAPI
  • Python

学习目标

核心概念

查询参数写在 URL 后面的 ? 之后,常见场景有:

FastAPI 中如果函数参数没有出现在路径里,且不是请求体模型,通常就会被当作查询参数。

代码示例

from typing import Annotated

from fastapi import FastAPI, Query

app = FastAPI()


@app.get("/users")
def list_users(
    page: Annotated[int, Query(ge=1, description="页码")] = 1,
    size: Annotated[int, Query(ge=1, le=100, description="每页数量")] = 10,
    keyword: Annotated[str | None, Query(description="搜索关键词")] = None,
):
    return {"page": page, "size": size, "keyword": keyword}

访问示例:

/users?page=2&size=20&keyword=tom

Query 的价值

Path 一样,Query 的作用也不只是“接参数”,还包括:

例如:

keyword: Annotated[str | None, Query(alias="q")] = None

这样前端可以传 ?q=fastapi

易错点

我的补充

分页参数几乎是最适合用 Query 的场景。
以后你做列表页接口时,pagesizekeyword 这组三件套会非常常见。