Python 与 FastAPI 实现文件上传的方法

2025-01-09 03:07:25   小编

Python 与 FastAPI 实现文件上传的方法

在现代 Web 开发中,文件上传是一项常见需求。Python 作为一门功能强大的编程语言,结合 FastAPI 这个高性能的 Web 框架,能轻松实现文件上传功能。

FastAPI 是基于 Python 的快速 Web 框架,它使用类型提示来提高代码的可读性和可维护性。要使用 FastAPI 实现文件上传,首先要确保安装了 FastAPI 和 uvicorn(一个 ASGI 服务器,用于运行 FastAPI 应用)。可以使用 pip install fastapi uvicorn 命令进行安装。

创建一个基本的 FastAPI 应用很简单。在 Python 文件中,导入必要的库:

from fastapi import FastAPI, File, UploadFile
app = FastAPI()

这里,FileUploadFile 是用于处理文件上传的类。

接下来定义处理文件上传的 API 端点:

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    contents = await file.read()
    file_size = len(contents)
    file_name = file.filename
    # 这里可以进行文件保存或其他处理
    await file.close()
    return {"filename": file_name, "size": file_size}

在这个端点中,fileUploadFile 类型,File(...) 表示这个参数是必需的。await file.read() 用于读取文件内容,然后可以获取文件大小和文件名。处理完文件后,使用 await file.close() 关闭文件。

如果需要上传多个文件,可以这样修改代码:

@app.post("/uploadfiles/")
async def create_upload_files(files: list[UploadFile] = File(...)):
    file_infos = []
    for file in files:
        contents = await file.read()
        file_size = len(contents)
        file_name = file.filename
        await file.close()
        file_infos.append({"filename": file_name, "size": file_size})
    return {"files": file_infos}

这里将 files 定义为 UploadFile 列表,通过循环处理每个上传的文件。

在实际应用中,处理完文件内容后,可能需要将文件保存到服务器的指定目录。可以使用 Python 的 ospathlib 模块来实现文件保存功能。

通过 Python 与 FastAPI 的结合,开发者能够高效、简洁地实现文件上传功能,无论是单个文件还是多个文件的上传,都能轻松应对,为 Web 应用开发提供了强大支持。

TAGS: 实现方法 Python 文件上传 FastAPI

欢迎使用万千站长工具!

Welcome to www.zzTool.com