fastapi中post请求提交的图片怎么用python保存到后端mysql数据库中
时间: 2023-12-25 21:03:51 浏览: 163
在FastAPI中,你可以使用`request`对象的`files`属性来获取通过POST请求提交的文件数据。然后,你可以使用Python的MySQL连接库(如`mysql-connector-python`)将图片保存到MySQL数据库中。以下是一个示例代码:
```python
from fastapi import FastAPI, UploadFile
import mysql.connector
app = FastAPI()
def save_image_to_mysql(image_data):
conn = mysql.connector.connect(
host='localhost',
user='your_username',
password='your_password',
database='your_database'
)
cursor = conn.cursor()
# 将图片数据插入到数据库中
insert_query = "INSERT INTO images (image_blob) VALUES (%s)"
cursor.execute(insert_query, (image_data,))
# 提交更改并关闭连接
conn.commit()
cursor.close()
conn.close()
@app.post("/upload_image")
async def upload_image(image: UploadFile):
# 读取图片数据
image_data = image.file.read()
# 保存图片到MySQL数据库
save_image_to_mysql(image_data)
return {"message": "Image uploaded successfully"}
```
在上面的代码中,你需要替换以下部分:
- `your_username`:你的MySQL用户名
- `your_password`:你的MySQL密码
- `your_database`:你要连接的MySQL数据库名称
- `images`:你的表名,需要在数据库中创建一个包含 `image_blob` 列的表
在这个示例中,我们定义了一个路由 `/upload_image` 来处理POST请求。通过`UploadFile`参数,我们可以获取到上传的图片数据。然后,我们调用`save_image_to_mysql`函数将图片数据保存到MySQL数据库中。
请确保已经正确安装了 `fastapi` 和 `mysql-connector-python` 库,可以使用 `pip install fastapi mysql-connector-python` 进行安装。另外,还需要安装一个ASGI服务器(如`uvicorn`)来运行FastAPI应用。
这样,通过POST请求上传的图片将被保存到后端MySQL数据库中。
阅读全文