Flask 如何将 MySQL 数据库中的图片返回给前端

2025-01-14 17:31:28   小编

在Web开发中,经常需要将MySQL数据库中的图片返回给前端展示,Flask作为一个轻量级的Python Web框架,提供了便捷的方式来实现这一功能。

要确保已经安装了必要的库。Flask框架必不可少,同时需要安装用于连接MySQL数据库的pymysql库。可以通过pip install flask pymysql命令进行安装。

接着,配置MySQL数据库连接。在Flask应用中,使用pymysql建立连接,设置好数据库的主机、端口、用户名、密码和数据库名。示例代码如下:

import pymysql
from flask import Flask, send_file

app = Flask(__name__)

def get_database_connection():
    return pymysql.connect(
        host='localhost',
        port=3306,
        user='your_username',
        password='your_password',
        database='your_database'
    )

然后,从数据库中读取图片数据。假设数据库中有一个表images,其中有字段idimage_dataimage_data存储了图片的二进制数据。以下代码用于从数据库中获取指定图片:

@app.route('/image/<int:image_id>')
def get_image(image_id):
    connection = get_database_connection()
    try:
        cursor = connection.cursor()
        query = "SELECT image_data FROM images WHERE id = %s"
        cursor.execute(query, (image_id,))
        result = cursor.fetchone()
        if result:
            image_data = result[0]
            return send_file(
                io.BytesIO(image_data),
                mimetype='image/jpeg'
            )
        else:
            return "图片未找到", 404
    finally:
        connection.close()

在上述代码中,@app.route('/image/<int:image_id>')定义了一个路由,当用户访问/image/图片id时,会执行get_image函数。函数中从数据库获取图片二进制数据,然后使用send_file将图片数据返回给前端。send_file函数的第一个参数是包含图片数据的字节流对象,第二个参数指定了图片的MIME类型。

在前端,只需要通过<img>标签的src属性指向Flask提供的图片路由地址,即可实现图片的展示。例如:<img src="/image/1">

通过以上步骤,就可以在Flask应用中实现将MySQL数据库中的图片返回给前端展示的功能。合理运用这些技术,能为Web应用增添丰富的视觉效果。

TAGS: 图片处理 MySQL数据库 前后端交互 Flask技术

欢迎使用万千站长工具!

Welcome to www.zzTool.com