怎么用Python程序实现向MySQL存放图片

环境

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程序实现向MySQL存放图片

立即学习“Python免费学习笔记(深入)”;

以上就是怎么用Python程序实现向MySQL存放图片的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2239982.html

(0)
上一篇 2025年2月26日 20:08:59
下一篇 2025年2月26日 20:09:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python drop()删除行列的操作方法有哪些

    在进行特征工程、划分数据集的工作中,drop()函数都能派上用场。它可以轻松剔除数据、操作列和操作行等。 drop()详细的语法如下: 删除行是index,删除列是columns: DataFrame.drop(labels=None, a…

    2025年2月26日
    000
  • Python异步之推导式怎么应用

    引言 当我们想到“pythonic”时,理解,如列表和字典理解是 python 的一个特性。 这是我们执行循环的一种方式,与许多其他语言不同。 Asyncio 允许我们使用异步推导式。 我们可以通过“async for”表达式使用异步推导式…

    编程技术 2025年2月26日
    200
  • 一行 Python 代码轻松构建树状热力图

    今天和大家一起学习一种可视化技术:构建树状热力图treemap。树形图易于可视化,且易于被人理解。树状图通过展示不同大小的矩形,以传达不同大小的数据量,一般认为,较大的矩形意味着占总体的一大部分,而较小的矩形意味着整体的一小部分。在本文中,…

    2025年2月26日 编程技术
    200
  • Python如何实现arctan换算角度

    笛卡尔坐标系 对于平面坐标系,任一射线op与x轴夹角θ的范围,可以取[0,2π)或者(-π,π],如无特殊说明, 我们统一使用后者。将笛卡尔空间坐标系中的点 pc = ( x , y , z ) 表示成球体坐标系中的形式 ps = ( θ …

    2025年2月26日 编程技术
    200
  • Python之Pygame的Draw绘图方法怎么使用

    Pygame的Draw绘图 pygame 中提供了一个draw模块用来绘制一些简单的图形状,比如矩形、多边形、圆形、直线、弧线等。 pygame.draw模块的常用方法如下表所示: 名称 说明 pygame.draw.rect() 绘制矩形…

    编程技术 2025年2月26日
    200
  • Python ttkbootstrap怎么使用

    一、什么是ttkbootstrap? ttkbootstrap 是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序 二、安装步骤 安装命令:pip install …

    2025年2月26日 编程技术
    200
  • Python中的QPixmap怎么使用

    qpixmap主要用于绘图,针对图像显示而最佳化设计;qimage主要是为图像i/o、图像访问及像素修改而设计。但若用qpixmap加载大图片的时候,会占用很大内存,适合加载小图片;一个几十k的图片,加载进来后会放大很多倍。 若图片过大,可…

    编程技术 2025年2月26日
    200
  • Python 任务自动化工具 tox 教程

      Command line driven CI frontend and development task automation tool 命令行驱动的 CI 前端和开发任务自动化工具 tox 的项目地址是:https://github.…

    2025年2月26日 编程技术
    200
  • 基于Python怎么实现俄罗斯方块躲闪小游戏

    俄罗斯方块是一款经典的益智游戏,最早由俄罗斯人阿列克谢·帕基特诺夫在1984年开发。据说他的灵感来自于儿时拼积木的经历。这款游戏最初在苏联的计算机上流行开来,后来又在世界范围内广为流传。它的设计初衷是希望通过这个游戏来训练玩家的反应速度和空…

    2025年2月26日
    200
  • python子类在多继承中怎么使用MRO

    子类在多继承中使用MRO机制 在python中,当定义一个类时,可以指定它的父类。一个子类继承了其所有父类的属性和方法,并且可以添加自己特有的属性和方法。 然而,如果一个类有多个直接父类,那么这些父类之间可能会存在重名的属性和方法。为了正确…

    编程技术 2025年2月26日
    200

发表回复

登录后才能评论