Python FastAPI 接收 POST 请求 Body 的参数

在 Web 开发中,我们经常需要接收客户端发送的 POST 请求,并从请求的 body 中解析出参数。Python FastAPI 是一个高性能、易学易用的 Web 框架,提供了方便的工具和方法来解析 POST 请求的 body。

本文将介绍如何使用 FastAPI 接收 POST 请求的 body 参数,并提供相应的代码示例。

1. 安装 FastAPI

在开始之前,首先需要安装 FastAPI。可以使用 pip 来安装 FastAPI:

pip install fastapi

2. 创建 FastAPI 应用

首先,我们需要导入必要的模块并创建一个 FastAPI 应用:

from fastapi import FastAPI

app = FastAPI()

3. 定义 POST 请求的路由和处理函数

接下来,我们可以定义一个接收 POST 请求的路由,并编写处理函数来解析请求的 body 参数。

以下是一个简单的例子,我们定义了一个 /users 的 POST 路由,并编写了一个处理函数 create_user 来解析请求的 body 参数:

from fastapi import FastAPI

app = FastAPI()

@app.post("/users")
async def create_user(user: dict):
    return {"message": "User created successfully", "user": user}

在上述示例中,我们使用了 FastAPI 提供的装饰器 @app.post 来定义了一个 POST 路由 /users。我们还定义了一个参数 user,它的类型为 dict,用于接收请求的 body 参数。

4. 发送 POST 请求并接收响应

接下来,我们可以使用任何 HTTP 请求工具(如 cURL、Postman 或 Python 的 requests 库)来发送 POST 请求,并接收响应。

以下是一个使用 requests 库发送 POST 请求的示例:

import requests

url = "http://localhost:8000/users"
data = {"name": "John Doe", "age": 30}

response = requests.post(url, json=data)
print(response.json())

在上述示例中,我们使用了 requests.post 方法发送了一个 POST 请求,并将参数以 JSON 格式传递给 json 参数。

5. 完整示例

下面是一个完整的示例,结合了前面的代码片段:

from fastapi import FastAPI
import requests

app = FastAPI()

@app.post("/users")
async def create_user(user: dict):
    return {"message": "User created successfully", "user": user}

if __name__ == "__main__":
    # 发送 POST 请求
    url = "http://localhost:8000/users"
    data = {"name": "John Doe", "age": 30}

    response = requests.post(url, json=data)
    print(response.json())

在上述示例中,我们通过运行 Python 脚本发送了一个 POST 请求,并打印出响应的内容。

总结

在本文中,我们介绍了如何使用 FastAPI 接收 POST 请求的 body 参数。首先,我们安装了 FastAPI,并创建了一个 FastAPI 应用。然后,我们定义了一个接收 POST 请求的路由,并编写了一个处理函数来解析请求的 body 参数。最后,我们使用 requests 库来发送 POST 请求,并接收响应。

FastAPI 提供了简单易用的工具和方法来处理 POST 请求的 body 参数,使得 Web 开发变得更加高效和方便。

希望本文对你理解和使用 FastAPI 来接收 POST 请求的 body 参数有所帮助。Happy coding!