首先,确保您已经在 Python 环境中安装了 FastAPI。
安装环境:
pip install fastapi uvicorn
让我们创建一个图片上传的接口:
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import JSONResponse
import shutil
import osapp = 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 目录中。