FastAPI 中怎么进行文件上传?

本文介绍了在 FastAPI 中进行文件上传的方法

用 Apifox,节省研发团队的每一分钟

FastAPI 中怎么进行文件上传?

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

文件上传是 Web 应用程序中常见的功能之一,用于允许用户上传文件到服务器。FastAPI 是一个基于 Python 的现代 Web 框架,它提供了内置的文件上传支持。本文将介绍在 FastAPI 中如何进行文件上传,包括如何使用、实践案例以及在 IDE 编辑器中运行的步骤。

FastAPI 中进行文件上传

首先,确保你已经安装了 FastAPI。你可以通过以下命令使用 pip 安装 FastAPI:

pip install fastapi

pip install python-multipart


接下来,我们将创建一个简单的 FastAPI 应用程序,并添加文件上传的支持。请在你的 IDE 编辑器中创建一个名为 fastapi-file.py 的文件,并将以下代码粘贴到其中:

from fastapi import FastAPI, UploadFile, File

app = FastAPI()

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    contents = await file.read()
    return {"filename": file.filename, "contents": contents}


if __name__ == "__main__":
    import uvicorn

    uvicorn.run(app, host="127.0.0.1", port=8000)


在上面的代码中,我们创建了一个 /uploadfile/ 的路由,用于接收文件上传。在 create_upload_file() 函数中,我们使用 UploadFile 类作为参数来接收上传的文件。通过调用 read() 方法,我们可以读取文件内容并进行处理。在这个示例中,我们将文件名和内容作为 JSON 格式的响应返回。

运行程序

要运行 FastAPI 应用程序,并测试文件上传功能,我们需要使用 uvicorn 这样的 ASGI 服务器。请确保你已经安装了 uvicorn。你可以通过以下命令使用 pip 安装它:

pip install uvicorn


在你的 IDE 编辑器中,打开终端并导航到存储 fastapi-file.py 文件的目录。然后运行以下命令启动应用程序:

uvicorn fastapi-file:app --reload


现在,你可以使用 HTTP 请求工具(如 cURL、Apifox 或浏览器插件)向 http://localhost:8000/uploadfile/ 发送 POST 请求,选择一个文件并上传。你将能够获取到文件名和文件内容的响应。

使用 Apifox 连接调试

Apifox 是一个集 API 文档、API 调试、API Mock 和 API 自动化测试于一体的 API 协作平台,支持 http(s)、gRPC、WebSocket 等协议,我们可以通过 Apifox 来更方便的调试 FastAPI 接口。

在 Apifox 中新建一个项目,并新建一条 POST 接口,路径为http://localhost:8000/uploadfile/。在请求中,你需要使用 form-data 格式,将文件字段命名为 file,并选择要上传的文件。上传成功后,服务器将返回文件的元数据(如文件名)和内容。

FastAPI 中进行文件上传
Apifox 连接调试

总结

本文介绍了在 FastAPI 中进行文件上传的方法。通过创建一个路由并使用 UploadFile 类处理文件上传,我们能够实现文件上传的功能。在实践案例中,我们展示了一个简单的示例,其中接收客户端上传的文件,并读取文件内容并返回响应。


FastAPI 提供了内置的文件上传支持,使得在 Web 应用程序中实现文件上传变得更加简单和高效。同时,使用 Apifox  进行接口调试,大大提高了项目的开发效率,图形化的操作界面也更加方便。

知识扩展

了解更多 FastAPI 的知识:



参考链接:

  • FastAPI 官网:https://fastapi.tiangolo.com/
  • FastAPI 文件上传文档:https://fastapi.tiangolo.com/tutorial/request-files/