FastAPI - 查询参数
将请求数据传递到服务器的经典方法是将查询字符串附加到 URL。 假设服务器上的 Python 脚本 (hello.py) 作为 CGI 执行,由 & (与符号)连接的键值对列表构成查询字符串,该字符串附加到 URL 通过放置问号 (?) 作为分隔符。 例如 −
http://localhost/cgi-bin/hello.py?name=Ravi&age=20
URL 的尾部,在 (?) 之后,是查询字符串,然后由服务器端脚本解析以进行进一步处理。
如前所述,查询字符串是由 & 符号连接的 parameter=value 对列表。 FastAPI 自动将端点中不是路径参数的部分视为查询字符串,并将其解析为参数及其值。 这些参数被传递给操作装饰器下面的函数。
示例
from fastapi import FastAPI app = FastAPI() @app.get("/hello") async def hello(name:str,age:int): return {"name": name, "age":age}
在浏览器中启动 Uvicorn 服务器和这个 URL −
http://localhost:8000/hello?name=Ravi&age=20
您应该获得相同的 JSON 响应。 但是,检查会告诉您 FastAPI 已检测到 /hello 端点没有路径参数,但有查询参数。
单击Try it out按钮,输入"Ravi"和"20"作为值,然后按Execute执行按钮。 文档页面现在显示 Curl 命令、请求 URL 以及 HTTP 响应的正文和标头。
示例
您可以使用 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}
尝试输入 http://localhost:8000/docs 作为 URL。 这将打开 Swagger UI (OpenAPI) 文档。 参数"name"是路径参数,"age"是查询参数