- FastAPI 教程
- FastAPI - 首页
- FastAPI - 简介
- FastAPI - Hello World
- FastAPI - OpenAPI
- FastAPI - Uvicorn
- FastAPI - 类型提示
- FastAPI - IDE 支持
- FastAPI - REST 架构
- FastAPI - 路径参数
- FastAPI - 查询参数
- FastAPI - 参数验证
- FastAPI - Pydantic
- FastAPI - 请求体
- FastAPI - 模板
- FastAPI - 静态文件
- FastAPI - HTML 表单模板
- FastAPI - 访问表单数据
- FastAPI - 上传文件
- FastAPI - Cookie 参数
- FastAPI - Header 参数
- FastAPI - 响应模型
- FastAPI - 嵌套模型
- FastAPI - 依赖项
- FastAPI - CORS
- FastAPI - CRUD 操作
- FastAPI - SQL 数据库
- FastAPI - 使用 MongoDB
- FastAPI - 使用 GraphQL
- FastAPI - Websockets
- FastAPI - FastAPI 事件处理器
- FastAPI - 挂载子应用
- FastAPI - 中间件
- FastAPI - 挂载 Flask 应用
- FastAPI - 部署
- FastAPI 有用资源
- FastAPI - 快速指南
- FastAPI - 有用资源
- FastAPI - 讨论
FastAPI - 查询参数
将请求数据传递到服务器的一种经典方法是将查询字符串附加到 URL。假设服务器上的 Python 脚本 (hello.py) 作为CGI执行,由与号 (&) 连接的一系列键值对构成查询字符串,通过添加问号 (?) 作为分隔符将其附加到 URL。例如:
https://127.0.0.1/cgi-bin/hello.py?name=Ravi&age=20
URL 的尾部,在 (?) 之后,是查询字符串,然后由服务器端脚本解析以进行进一步处理。
如前所述,查询字符串是由 & 符号连接的参数=值对列表。FastAPI 自动将端点中不是路径参数的部分视为查询字符串,并将其解析为参数及其值。这些参数传递给操作装饰器下面的函数。
示例
from fastapi import FastAPI app = FastAPI() @app.get("/hello") async def hello(name:str,age:int): return {"name": name, "age":age}
启动 Uvicorn 服务器并在浏览器中输入此 URL:
https://127.0.0.1:8000/hello?name=Ravi&age=20
您应该会得到相同的 JSON 响应。但是,检查表明 FastAPI 检测到 /hello 端点没有路径参数,但有查询参数。
点击试一下按钮,输入“Ravi”和“20”作为值,然后按下执行按钮。文档页面现在显示 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}
尝试输入 https://127.0.0.1:8000/docs 作为 URL。这将打开 Swagger UI (OpenAPI) 文档。参数 'name' 是路径参数,'age' 是查询参数。
广告