Hello! 欢迎来到小浪资源网!

FastAPI中如何打印POST请求的表单数据?


FastAPI中如何打印POST请求的表单数据?

fastapi 中打印 post 请求的表单

要打印 post 请求的表单,可以使用以下方法:

方法 1: 使用 starlette request 对象

在视图函数中,可以通过 request 参数访问 starlette request 对象。在此对象上调用 form() 方法将返回一个 form 对象。该对象的 dict() 方法可将其转换为字典,提供表单参数的键值对

from fastapi import fastapi, form  app = fastapi()  @app.post("/search") def search_reverse(     max_chunk_size: int = form(1200),     search_top_k: int = form(         default=30     ),     distance_threshold: float = form(         0.32     ) ):     form_data = request.form()     form_dict = dict(form_data)     print(form_dict)  # 字典形式的表单数据

方法 2: 使用依赖项

此方法使用依赖项来获取表单数据。首先,创建一个获取表单数据的自定义依赖项函数:

from fastapi import depends, request  async def get_form_data(request: request):     form_data = await request.form()     return dict(form_data)

然后,在视图函数中,将此依赖项声明为参数:

from fastapi import FastAPI from fastapi.responses import JSONResponse  app = FastAPI()  @app.post("/search") def search_reverse(form_data: dict = Depends(get_form_data)):     print(form_data)  # 字典形式的表单数据

相关阅读