FastAPI 中如何使用查询参数?

推荐答案

在 FastAPI 中,查询参数可以通过在路径操作函数的参数中声明来使用。FastAPI 会自动将 URL 中的查询参数解析为函数参数。

在这个例子中,skiplimit 是查询参数。如果访问 /items/?skip=20&limit=30,FastAPI 会自动将 skip 解析为 20limit 解析为 30

本题详细解读

查询参数的基本使用

在 FastAPI 中,查询参数是通过在路径操作函数的参数中声明来使用的。这些参数会自动从 URL 的查询字符串中提取并解析为相应的类型。

  • skiplimit 是查询参数。
  • skip 的默认值是 0limit 的默认值是 10
  • 如果 URL 中没有提供这些参数,FastAPI 会使用默认值。

查询参数的类型转换

FastAPI 会自动将查询参数转换为声明的类型。例如,如果 skip 声明为 int 类型,FastAPI 会尝试将查询字符串中的 skip 值转换为整数。

  • 如果访问 /items/?skip=20&limit=30skip 会被解析为 20limit 会被解析为 30
  • 如果访问 /items/?skip=abc,FastAPI 会返回一个 422 错误,因为 abc 无法转换为整数。

可选和必填查询参数

查询参数可以是可选的或必填的。如果参数有默认值,那么它是可选的;如果没有默认值,那么它是必填的。

  • 在这个例子中,skip 是必填的,因为没有默认值。如果 URL 中没有提供 skip,FastAPI 会返回一个 422 错误。
  • limit 是可选的,因为有默认值 10

多个查询参数

你可以声明多个查询参数,FastAPI 会处理所有参数。

  • 这个例子中,q 是一个可选的字符串查询参数。
  • 如果访问 /items/?skip=20&limit=30&q=fastapiq 会被解析为 "fastapi"

查询参数的验证

FastAPI 支持对查询参数进行验证。你可以使用 Pydantic 模型或直接在函数参数中使用类型注解来进行验证。

-- -------------------- ---- -------
---- -------- ------ ---------

----- ---------------------
    ----- --- - -
    ------ --- - --
    -- --- - ----

-------------------
----- --- ----------------- -----------
    ------ -----
  • 在这个例子中,ItemQuery 是一个 Pydantic 模型,用于验证查询参数。
  • FastAPI 会自动将查询参数解析为 ItemQuery 模型,并进行验证。

总结

FastAPI 提供了灵活且强大的查询参数处理机制,支持类型转换、默认值、可选参数、必填参数以及参数验证。通过合理使用这些特性,你可以轻松构建出符合需求的 API 接口。

纠错
反馈