加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python将图片存数据库blob,再读出来保存

(2018-05-12 00:11:49)
分类: Linux学习、python
本实例是基于mysql8.0.11的,python2.7.14。mysql8有点不太一样,注意语法和使用。

1.将图片数据读出来,存储到数据库中
##########################################################

# -*- coding: UTF-8 -*-

import mysql.connector
from mysql.connector import MySQLConnection, Error
import sys
try:
# 读取图片文件
fp = open("D:\\1.jpg", 'rb') #注意这里一定要使用rb,读出二进制文件,否则有读不全等问题
img = fp.read()
fp.close()
except IOError, e:
print "Error %d %s" % (e.args[0], e.args[1])
sys.exit(1)
try:
# mysql连接
conn = mysql.connector.connect(host='localhost', user='XXX', passwd='XXX', db='memberdb')
cursor = conn.cursor()
updateMemInfo = (
"REPLACE INTO memberinfo (speciCode, age, qqImg) "
"VALUES (%s, %s, %s)")
dataMemInfo = ('Q94x_xozCm', 23, img)
cursor.execute(updateMemInfo, dataMemInfo)

# 如果数据库没有设置自动提交,这里要提交一下
conn.commit()
cursor.close()
# 关闭数据库连接
conn.close()
except Error, e:
print "Error %d %s" % (e.args[0], e.args[1])
sys.exit(1)
##########################################################################

2.从数据库中读出数据,并存文件

config = {
'user': 'XXX',
'password': 'XXX',
'host': '127.0.0.1',
'database': 'memberdb',
'raise_on_warnings': True,
'use_pure': False,
}



def write_file(data, filename):
with open(filename, 'wb') as f:
f.write(data)
f.close()

def read_blob(code, filename):
try:
conn = mysql.connector.connect(**config)
cursor = conn.cursor()

query = ("SELECT qqImg FROM memberinfo WHERE speciCode = %s")

dataMemInfo = 'Q94x_xozCm'
cursor.execute(query, (dataMemInfo,))
photo = cursor.fetchone()[0]

cursor.close()
# 关闭数据库连接
conn.close()
write_file(photo, filename)
except Error as e:
print(e)

finally:
    cursor.close()
    conn.close()






0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有