python3图片转换二进制存入mysql
作者:
MYSQL是支持把图片存入数据库的,也相应的有一个专门的字段BLOB (Binary Large Object),即较大的二进制对象字段,看下面代码
首先,在数据库中创建一个表,用于存放图片:
复制代码 代码如下:
CREATE TABLE Images(Id INT PRIMARY KEY AUTO_INCREMENT, Data MEDIUMBLOB);
然后运行如下PYTHON代码进行:
复制代码 代码如下:
# -*- coding: UTF-8 -*-
import MySQLdb as mdb
import sys
try:
#用读文件模式打开图片
fin = open("../web.jpg")
#将文本读入img对象中
img = fin.read()
#关闭文件
fin.close()
except IOError, e:
#如果出错,打印错误信息
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
try:
#链接mysql,获取对象
conn = mdb.connect(host='localhost',user='root',passwd='root', db='test')
#获取执行cursor
cursor = conn.cursor()
#直接将数据作为字符串,插入数据库
cursor.execute("INSERT INTO Images SET Data='%s'" % mdb.escape_string(img))
#提交数据
conn.commit()
#提交之后,再关闭cursor和链接
cursor.close()
conn.close()
except mdb.Error, e:
#若出现异常,打印信息
print "Error %d: %s" % (e.args[0],e.args[1])