flask mysql保存图片_Flask以二进制流实现存储图片到数据库并读取

本文介绍如何在Flask应用中将上传的图片以二进制流存储到MySQL数据库,并通过base64库进行读取。在`app/models.py`中创建ImageFile模型,使用`db.LargeBinary`存储二进制文件;`app/main/forms.py`定义表单,`app/main/views.py`处理文件上传并保存到数据库,同时提供读取和显示图片的方法;`templates/up.html`展示已存储的图片名称。
摘要由CSDN通过智能技术生成

一、需求提出

在一个以flask为框架的项目中,有时需要把上传的图片存入数据库以保障不易丢失。

二、原理

以二进制流的形式把上传的图片存入数据库

三、实践

(1)app/models.py中的主要代码如下:

class ImageFile(db.Model):

__tablename__ = 'ImageFile'

id = db.Column(db.Integer, primary_key=True)

image_name = db.Column(db.String(30), index=True)

image = db.Column(db.LargeBinary(length=2048))

其中存储图片时用到的字段类型为 db.LargeBinary ,这个类型就是用来储存二进制文件的。

(2)app/main/forms.py表单类的代码如下:

from flask_wtf import Form

from wtforms import StringField, FileField, SubmitField

class upForm(Form):

name = StringField('Name')

file = FileField('file')

submit = SubmitField('submit')

(3)app/main/views.py视图函数主要代码如下:

import base64

@main.route('/', methods=['GET',

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值