
Flask应用:从MySQL数据库获取并显示图片
本文介绍如何构建一个Flask接口,从MySQL数据库读取图片数据,并在前端展示。
问题描述:
如何使用Flask框架从MySQL数据库中读取图片数据,并将其以图片格式返回给前端?
代码示例及解决方案:
数据库连接和图片读取(假设数据库名为mydatabase,表名为my_table,图片字段名为image,id为1):
import mysql.connectorfrom flask import Flask, send_fileapp = Flask(__name__)mydb = mysql.connector.connect( host="localhost", user="root", password="password", database="mydatabase")mycursor = mydb.cursor()mycursor.execute("SELECT image FROM my_table WHERE id = 1")image_data = mycursor.fetchone()[0]mydb.close()@app.route('/get_image')def get_image(): return send_file(io.BytesIO(image_data), mimetype='image/jpeg')if __name__ == '__main__': app.run(debug=True)
关键改进:
使用io.BytesIO: 将二进制图片数据包装成一个可供send_file函数处理的类文件对象。这避免了直接将二进制数据传递给send_file可能造成的错误。 需要导入io模块:import io关闭数据库连接: 在读取完图片数据后,显式地关闭数据库连接(mydb.close()),这是良好的数据库操作习惯。更清晰的代码结构: 将数据库连接和图片读取部分与Flask路由处理部分分开,使代码更易于理解和维护。错误处理 (可选): 可以添加错误处理机制,例如处理数据库连接失败或查询结果为空的情况。
这个改进后的代码能够正确地从MySQL数据库读取图片,并通过Flask接口返回给前端,前端可以使用标签显示该图片。 请确保你的MySQL数据库已正确配置,并且image字段的类型为BLOB。 根据图片的实际类型,调整mimetype参数(例如image/png)。
以上就是Flask如何从MySQL数据库读取并返回图片?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1357101.html
微信扫一扫
支付宝扫一扫