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

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

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 对类的成员函数开启线程的方法

    在 Python 中使用多线程可以提升程序的运行效率。对于类的成员函数,我们可以使用以下方法来开启线程。 1. 使用 threading.Thread 类 使用 threading.Thread 类创建新线程,可传递一个函数和它的参数。 示例代码: import threading class MyClass: def my_func(self, arg1,…

    python 2023年5月19日
    00
  • Python命令行解析工具argparse模块

    下面是针对Python命令行解析工具argparse模块的完整攻略。 什么是argparse模块 argparse是Python标准库中用于命令行解析的模块,它可以帮助我们定义和解析命令行参数,并提供了丰富的功能和选项。 argparse模块的基本用法 引入argparse模块 python import argparse 创建ArgumentParser对…

    python 2023年6月3日
    00
  • Python 重新缩放数据

    【问题标题】:Python Rescale DataPython 重新缩放数据 【发布时间】:2023-04-04 19:46:01 【问题描述】: 我在以下代码中收到此错误。我收到的错误没有给我任何地址的线索。请帮忙。 错误:TypeError: ‘ 代码: from pandas import read_csv from numpy import set…

    Python开发 2023年4月6日
    00
  • Python3操作SQL Server数据库(实例讲解)

    Python3操作SQL Server数据库(实例讲解) 环境准备 在使用Python3操作SQL Server数据库之前,需要先安装相应的依赖包。 pip install pyodbc 如果需要在Python3中使用SQLAlchemy,还需要安装以下依赖: pip install sqlalchemy pip install pyodbc>=4.0…

    python 2023年5月20日
    00
  • Python中的Numeric包和Numarray包使用教程

    Python中的Numeric包和Numarray包使用教程 什么是Numeric和Numarray包 Numeric和Numarray都是Python中的数值计算库,它们可以让Python在数值计算上更加地高效和灵活。 在Python2.5之前,Python内置的数值计算库是Numeric。然而,随着科学计算的需求增长,Numeric已经不能够满足大规模计…

    python 2023年6月5日
    00
  • python快排算法详解

    以下是关于“Python实现的快速排序算法详解”的完整攻略: 简介 快速排序是一种常见的排序算法,它的时间复杂度为O(nlogn)。在本教程中,我们将介绍如何使用Python实现快速排序算法,包括快速排序的基本原理、快速排序的实现方法、快速排序的优化等。 快速排序的基本原理 快速排序的基本原理是通过分治的思想将一个大问题分解为多个小问题,并将小问题的解合并成…

    python 2023年5月14日
    00
  • Python常见异常类型处理

    Python 常见异常类型处理 在编写 Python 代码时,可能会遇到程序抛出异常的情况。Python 提供了完善的异常处理机制,让我们更加方便地查找和处理异常。本文将介绍 Python 常见的异常类型及其处理方法。 Python 常见异常类型 IndexError IndexError 是访问数组,列表和元组等序列的时候可能会出现的错误。当访问的索引超出…

    python 2023年5月13日
    00
  • Python格式化输出字符串方法小结【%与format】

    Python格式化输出字符串方法是很常用的操作,主要有%和format两种方式,接下来我会详细介绍这两种方法。 1. %格式化输出字符串 %是Python中最早也是最常用的格式化输出方式,其语法为: ‘字符串格式化’ % 变量 其中,字符串格式化中的占位符可以用来接收变量的值,具体如下: 格式符 转换 实例 %s 字符串 ‘Hello, %s!’ % ‘wo…

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