环境
Python 3.7.4pymysql8.0.11 MySQL Community Server
登录后复制
读取图片
以二进制格式读取图片
with open("./test.jpg", "rb") as file:image = file.read()
登录后复制
创建存放图片的表
存放图片字段的属性为longblog,即long binary large object
def create_image_table(self):sql = 'create table if not exists picture ( image longblob);' try: self.cursor.execute(sql) self.connection.commit() except pymysql.Error: print(pymysql.Error)
登录后复制
存入MySQL
将二进制格式的图片数据存入MySQL
def insert_image(self, image): sql = "insert into picture(image) values(%s)" self.cursor.execute(sql, image) self.connection.commit()
登录后复制
保存MySQL查询得到的图片数据为图片
以二进制的格式写出图片
def get_image(self, path): sql = 'select * from picture' try: self.cursor.execute(sql) image = self.cursor.fetchone()[0] with open(path, "wb") as file: file.write(image) except pymysql.Error: print(pymysql.Error) except IOError: print(IOError)
登录后复制
实现代码
import pymysqlclass Database():'''Description:database demo to store image in MySQL RDBMSAttributes:None''' def __init__(self): self.connection = pymysql.connect(host='',user='',passwd='',db='',charset='utf8') self.cursor = self.connection.cursor()'''Description:create table to store imagesArgs:NoneReturn:None''' def create_image_table(self): sql = 'create table if not exists picture ( image longblob);' try: self.cursor.execute(sql) self.connection.commit() except pymysql.Error: print(pymysql.Error)'''Description:insert image into tableArgs:image:image to storeReturns:None''' def insert_image(self, image): sql = "insert into picture(image) values(%s)" self.cursor.execute(sql, image) self.connection.commit()'''Description:get image from databaseArgs:path:path to save imageReturns:None''' def get_image(self, path): sql = 'select * from picture' try: self.cursor.execute(sql) image = self.cursor.fetchone()[0] with open(path, "wb") as file: file.write(image) except pymysql.Error: print(pymysql.Error) except IOError: print(IOError) '''Description:destruction methodArgs:NoneReturns:None''' def __del__(self): self.connection.close() self.cursor.close()if __name__ == "__main__": database = Database() # read image from current directory with open("./test.jpg", "rb") as file: image = file.read() database.create_image_table() database.insert_image(image) database.get_image('./result.jpg')
登录后复制
测试结果
立即学习“Python免费学习笔记(深入)”;
以上就是怎么用Python程序实现向MySQL存放图片的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2239982.html