Fastapi 简明教程

FastAPI - Query Parameters

将请求数据传递给服务器的一个经典方法是在 URL 中附加一个查询字符串。假设服务器上 CGI 执行一个 Python 脚本 (hello.py),则用和号 (&) 连接的关键值对列表构成了查询字符串,将它附加到 URL 中的方法是使用问号 (?) 作为分隔符。比如 −

URL 中 (?) 之后的部分是查询字符串,服务器端脚本会进一步解析它进行处理。

如前所述,查询字符串是一个由 & 符号连接的参数=值对列表。FastAPI 会将端点中非路径参数的部分自动当作查询字符串进行处理,并将其解析为参数及其值。这些参数会传递给操作装饰符下的函数。

Example

from fastapi import FastAPI
app = FastAPI()
@app.get("/hello")
async def hello(name:str,age:int):
   return {"name": name, "age":age}

启动 Uvicorn 服务器并在浏览器中使用此 URL −

你应该会获得相同的 JSON 响应。但是,检查告诉你 FastAPI 已检测到 /hello 端点没有路径参数,但有查询参数。

query1

单击 Try it out 按钮,输入 "Ravi" 和 "20" 作为值,然后按 Execute 按钮。文档页面现在显示了 Curl 命令、请求 URL 以及 HTTP 响应的主体和标头。

query2

Example

可以对要装饰的函数的参数使用 Python 的类型提示。在这种情况下,将 name 定义为 str,将 age 定义为 int。

from fastapi import FastAPI
app = FastAPI()
@app.get("/hello/{name}")
async def hello(name:str,age:int):
   return {"name": name, "age":age}

尝试输入 [role="bare"] [role="bare"]http://localhost:8000/docs 作为 URL。这会打开 Swagger UI(OpenAPI)文档。参数 'name' 是路径参数,'age' 是查询参数。

query3