python3.x如何向mysql存储图片并显示

yizhihongxing

完整攻略分为以下几个步骤:

1.建立数据库连接

首先需要在Python环境中安装并导入PyMySQL库,用于连接MySQL数据库。然后使用connect()方法建立与数据库服务器的连接,即

import pymysql
db = pymysql.connect(host="localhost",user="root",password="root",database="test",port=3306)

其中,host和port分别指定数据库服务器的IP地址和端口号;user和password是连接数据库所需的用户名和密码;database是需要连接的数据库。

2.创建数据表

在连接成功后,需通过Python操作MySQL创建存储图片的数据表。例如,创建名为images的数据表,表结构如下:

CREATE TABLE images (
    id INT(11) PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    image LONGBLOB NOT NULL
);

其中,id字段是主键,name字段用于记录图片名称,image字段用于存储图片的二进制数据。

3.存储图片

上传图片时,需要将图片二进制数据存储到数据库的image字段中。假设想要上传名为test.png的图片,如下所示:

with open("test.png", "rb") as f:
    image_data = f.read()
    cursor = db.cursor()
    insert_sql = "insert into images(id, name, image) values (%s, %s, %s)"
    cursor.execute(insert_sql, (1, "test", image_data))
    db.commit()
    cursor.close()

在上传时,首先使用open方法打开需要上传的图片,使用read方法读取其二进制数据。使用cursor方法创建一个MySQL游标,再使用execute方法执行插入SQL语句,将图片数据插入到数据库中。最后使用commit方法提交事务,并关闭MySQL游标。

4.显示图片

在需要显示图片时,可以将图片二进制数据从数据库中读取出来,保存到本地,再通过HTML代码在页面中显示。如下所示:

cursor = db.cursor()
select_sql = "select image from images where name = %s"
cursor.execute(select_sql, ("test",))
result = cursor.fetchone()
with open("test2.png", "wb") as f:
    f.write(result[0])
cursor.close()

在查询时,使用execute方法执行查询SQL语句,将需要查询的图片条件作为参数,并使用fetchone方法获取查询结果。将图片二进制数据保存到本地,并通过HTML代码进行显示。

<img src="test2.png">

完整的代码示例可以查看如下两个代码块:

上传图片:

import pymysql
db = pymysql.connect(host="localhost",user="root",password="root",database="test",port=3306)

with open("test.png", "rb") as f:
    image_data = f.read()
    cursor = db.cursor()
    insert_sql = "insert into images(id, name, image) values (%s, %s, %s)"
    cursor.execute(insert_sql, (1, "test", image_data))
    db.commit()
    cursor.close()

db.close()

显示图片:

import pymysql
db = pymysql.connect(host="localhost",user="root",password="root",database="test",port=3306)

cursor = db.cursor()
select_sql = "select image from images where name = %s"
cursor.execute(select_sql, ("test",))
result = cursor.fetchone()
with open("test2.png", "wb") as f:
    f.write(result[0])
cursor.close()

db.close()

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3.x如何向mysql存储图片并显示 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • python读取与写入csv格式文件的示例代码

    下面为你讲解如何使用Python读取与写入CSV格式文件的示例代码攻略: 一、CSV文件介绍 CSV文件:CSV即Comma-Separated Values,逗号分隔值,是一种常见的文件格式,以纯文本形式存储表格数据,多用于将表格数据从兼容软件导出到其他软件。与Excel文件不同,CSV文件没有复杂的格式和样式,只有逗号分隔的数据内容。 CSV文件的特点:…

    python 2023年6月3日
    00
  • Python抛出引发异常(raise)知识点总结

    Python抛出引发异常(raise)知识点总结 在Python中,我们可以使用raise语句来抛出异常。raise语句用于引发异常,可以手动触发异常的抛出。本文将介绍Python中raise语句使用方法,包括如何抛出异常、如何自定义异常等。 抛出异常 在Python中,我们可以使用raise语句来抛出异常。raise语句可以接收一个异常类或异常实例作为参数…

    python 2023年5月14日
    00
  • Mongodb基本操作与Python连接mongodb并进行基础操作的方法

    下面是关于Mongodb基本操作与Python连接mongodb并进行基础操作的攻略: Mongodb基本操作 数据库与集合的创建 在MongoDB中,可以使用use命令创建数据库,例如:use mydb,表示创建一个叫做“mydb”的数据库。然后可以使用db.createCollection()方法来创建一个集合,例如:db.createCollectio…

    python 2023年5月14日
    00
  • Python自动操作Excel文件的方法详解

    下面是Python自动操作Excel文件的方法详解: 一、使用openpyxl模块操作Excel文件 1.安装openpyxl 首先我们需要安装openpyxl模块,可以使用以下命令进行安装: pip install openpyxl 2.导入openpyxl模块 在Python程序中,我们需要导入openpyxl模块来操作Excel文件,可以使用以下语句导…

    python 2023年5月19日
    00
  • 利用python获取某年中每个月的第一天和最后一天

    针对问题“利用python获取某年中每个月的第一天和最后一天”的完整攻略,以下是具体的步骤: 1. 导入模块 我们需要用到 Python 标准库中的 calendar 模块,所以首先需要导入该模块: import calendar 2. 获取某月的第一天和最后一天 calendar 模块提供了 monthrange() 方法,该方法能够获取指定年份和月份的日…

    python 2023年6月2日
    00
  • python中os模块详解

    Python中os模块详解 什么是os模块? os模块是Python中的一个重要标准库,在文件和目录操作、进程管理和环境变量操作等方面提供了许多便利的函数。通过调用os模块的函数,我们可以简化Python编程中一些操作系统相关的任务,提高编程效率。 常用的os模块函数 1. 文件和目录操作 os.getcwd() os.getcwd() 函数可以返回当前工作…

    python 2023年6月2日
    00
  • 最小二乘法及其python实现详解

    下面是详细讲解“最小二乘法及其Python实现详解”的完整攻略。 最小二乘法 最小二乘法是一种常用的回归分析方法,用于拟合数据点与数学模型之间的关系。该方法的核心思想是通过最小化数据点与拟合曲线之间的距离,来确定最佳拟合曲线的参数。 下面是一个Python实现最小二乘法的示例: import numpy as np def least_squares(x, …

    python 2023年5月14日
    00
  • python+selenium识别验证码并登录的示例代码

    使用 Python 和 Selenium 实现识别验证码并登录可以分为以下几个步骤: 使用 Selenium 打开登录页面,并获取验证码图片的 URL。 使用 Python 的 requests 库下载验证码图片,并使用第三方库(如 pytesseract)识别验证码。 将识别结果填入验证码输入框,并填写其他登录信息。 点击登录按钮,完成登录操作。 以下是两…

    python 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部