本文介绍如何构建一个Flask接口,从MySQL数据库读取图片,并以原始二进制格式返回给前端。
核心方法:
Flask的send_file()函数是关键。它接收包含图片二进制数据的对象以及MIME类型字符串作为参数,从而实现二进制流的返回。MySQL数据库通常使用BLOB数据类型存储图片。
代码示例:
from flask import Flask, send_file, request from flask_mysqldb import MySQL # 假设你使用了flask-mysqldb库 app = Flask(__name__) # MySQL数据库配置 (替换为你的实际配置) app.config['MYSQL_HOST'] = 'your_db_host' app.config['MYSQL_USER'] = 'your_db_user' app.config['MYSQL_PASSWORD'] = 'your_db_password' app.config['MYSQL_DB'] = 'your_db_name' mysql = MySQL(app) @app.route('/get_image', methods=['GET']) def get_image(): image_id = request.args.get('image_id') try: cur = mysql.connection.cursor() cur.execute("SELECT image_data FROM images WHERE id = %s", (image_id,)) # images表,image_data字段存储图片 result = cur.fetchone() cur.close() if result: image_data = result[0] return send_file(io.BytesIO(image_data), mimetype='image/jpeg') # io.BytesIO用于处理二进制数据 else: return "Image not found", 404 except Exception as e: return f"Error: {e}", 500 if __name__ == '__main__': app.run(debug=True)
说明:
此接口接受image_id作为查询参数,从数据库中检索对应的图片,并以二进制流的形式返回给前端。前端应用可以根据需要处理接收到的二进制数据。 记得处理潜在的异常,例如数据库连接错误或图片不存在的情况。
以上就是Flask如何返回MySQL数据库中的图片二进制流?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号