fastapi写一个上传的接口

首先,确保您已经在 Python 环境中安装了 FastAPI。

安装环境:

pip install fastapi uvicorn

让我们创建一个图片上传的接口:

from fastapi import FastAPI, File, UploadFile
from fastapi.responses import JSONResponse
import shutil
import os

app = FastAPI()

# 存储上传图片的目录
UPLOAD_DIRECTORY = "uploads"

# 如果目录不存在,则创建目录
os.makedirs(UPLOAD_DIRECTORY, exist_ok=True)

@app.post("/upload/")
async def upload_image(file: UploadFile = File(...)):
    try:
        # 保存上传的文件
        with open(os.path.join(UPLOAD_DIRECTORY, file.filename), "wb") as buffer:
            shutil.copyfileobj(file.file, buffer)
        
        return JSONResponse(content={"message": "文件上传成功"}, status_code=200)
    except Exception as e:
        return JSONResponse(content={"message": f"发生错误: {str(e)}"}, status_code=500)

  • 我们从 FastAPI 中导入了必要的模块 (FastAPI, File, UploadFile),以及其他文件操作所需的模块 (JSONResponse, shutil, os)。
  • 创建了 FastAPI 的实例。
  • 定义了一个存储上传图片的目录 (UPLOAD_DIRECTORY)。确保这个目录在您的项目中存在。
  • 定义了一个 POST 请求的端点 /upload/,它接受一个 UploadFile 对象作为输入。
  • 在端点函数内部,我们将上传的文件保存到指定的上传目录中。

要运行这个 FastAPI 应用程序,将代码保存到一个文件中(例如 main.py),然后在终端中执行以下命令:

uvicorn main:app --reload

这条命令会启动 FastAPI 应用程序,而 --reload 标志则会在检测到代码更改时自动重新加载服务器。现在,您可以发送带有图片文件的 POST 请求到 http://localhost:8000/upload/,它会将图片保存在 uploads 目录中。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬砖的诗人Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值