在本例中,将详细讲解如何使用Python语言以及Pymysql包,对图片进行存储和读取的操作,这涉及到数据库的操作和图片的二进制处理。 我们需要了解什么是Pymysql。Pymysql是一个Python语言中的数据库驱动模块,用于连接和操作MySQL数据库。它是一个纯Python实现,遵循Python DB-API 2.0规范。 本例中,我们所使用的Python版本是3.4,Pymysql版本为0.7.9。Pymysql可以通过以下的链接进行下载:*** 在进行图片存取操作之前,我们首先需要在MySQL数据库中建立一个库,本次实验的数据表名称为thumbnail,包含了三个字段:IdImg,NameImg和DataImg。其中,IdImg是图片ID,字段值自动增加;NameImg用于存储图片的文件名;DataImg用于存储图片的内容,其数据类型为longblob,用于存储大量的二进制数据。具体的创建语句如下: CREATE TABLE `thumbnail` ( `IdImg` int(11) NOT NULL AUTO_INCREMENT, `NameImg` varchar(30) DEFAULT NULL, `DataImg` longblob NOT NULL, PRIMARY KEY (`IdImg`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 接下来,我们进行图片存入数据库的操作。在Python脚本中,首先需要引入Pymysql模块。然后,我们编写一个函数img_read_store,该函数用于读取图片,并将图片存储到数据库中。在函数中,我们首先建立数据库的连接,并获取游标对象。然后,我们遍历图片文件名,使用二进制的方式打开图片文件,并将读取的数据存储到数据库中。具体的代码如下: import pymysql as mysql def img_read_store(img_dir, img_name): conn = mysql.connect(host='localhost', user='root', passwd="***", db='pic', charset='utf8') cur = conn.cursor() for i in img_name: try: myimg = open(img_dir + i, 'rb') data = myimg.read() cur.execute("INSERT INTO thumbnail(NameImg, DataImg) VALUES (%s, %s)", (i, data)) ***mit() except IOError as e: print("Encountered a mistake") print("Error %d %s" % (e.args[0], e.args[1])) sys.exit(1) cur.close() conn.close() 我们进行图片的提取操作。我们需要编写一个函数getbyname,该函数接受图片ID和保存路径作为参数。我们建立数据库的连接,然后执行查询操作,读取数据,并将数据写入到指定的文件中。具体的代码如下: def getbyname(fileID, savepath): conn = mysql.connect(host='localhost', user='root', passwd="***", db='pic', charset='utf8') cur = conn.cursor() cur.execute("SELECT DataImg FROM pic.thumbnail WHERE IdImg = %d" % fileID) data = cur.fetchone()[0] imgout = open(savepath + "mysql-" + str(fileID) + ".jpg", 'wb') imgout.write(data) cur.close() conn.close() 以上就是Python操作MySQL数据进行图片存取操作的知识点。这个过程中,我们使用了Python的文件操作和数据库操作技能,特别是对二进制数据的处理能力。通过这个例子,我们可以理解到Python和MySQL数据库在处理非结构化数据如图片等文件时,是一种非常有效的方法。同时,我们也需要注意到,由于是以二进制的方式进行图片存储的,在数据库中进行数据的查询时,显示结果可能会出现乱码现象。这是一个需要特别注意的地方。
- qq_354799422017-12-22存二进制到数据库
- myQQ3805403792018-10-10还是可以参考学习下
- 粉丝: 2
- 资源: 11
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于SimPy和贝叶斯优化的流程仿真系统.zip
- (源码)基于Java Web的个人信息管理系统.zip
- (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip
- (源码)基于ESP32和AWS IoT Core的室内温湿度监测系统.zip
- (源码)基于Arduino的I2C协议交通灯模拟系统.zip
- coco.names 文件
- (源码)基于Spring Boot和Vue的房屋租赁管理系统.zip
- (源码)基于Android的饭店点菜系统.zip
- (源码)基于Android平台的权限管理系统.zip
- (源码)基于CC++和wxWidgets框架的LEGO模型火车控制系统.zip