MySQL管理图片数据2022年更新(MySQL 管理)

随着互联网的快速发展,图片数据已经成为了我们日常生活中不可或缺的一部分,在各种网站和应用中,图片数据的管理和存储显得尤为重要,本文将介绍如何使用MySQL数据库来管理和存储图片数据,以及在2022年的更新中,MySQL为我们带来了哪些新的功能和优化。

mysql管理,mysql管理图片数据2022年更新(mysql 管理)mysql管理,mysql管理图片数据2022年更新(mysql 管理)

MySQL数据库的基本概念

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司,它采用了C语言编写,支持多种操作系统,如Windows、Linux、Mac OS等,MySQL的优点包括:开源免费、性能高、易于使用、安全性高等。

MySQL数据库中的图片数据存储

1、将图片作为二进制数据存储

在MySQL数据库中,可以将图片数据作为二进制数据进行存储,需要将图片文件读取为二进制数据,然后将这些数据存储到MySQL的BLOB(Binary Large Object)类型的字段中。

CREATE TABLE images (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    data BLOB NOT NULL
);

接下来,可以使用Python的open()函数和read()方法将图片文件读取为二进制数据,并将其插入到数据库中:

import mysql.connector
def insert_image(name, file_path):
    connection = mysql.connector.connect(user='username', password='password', host='localhost', database='test')
    cursor = connection.cursor()
    with open(file_path, 'rb') as file:
        data = file.read()
    sql = "INSERT INTO images (name, data) VALUES (%s, %s)"
    values = (name, data)
    cursor.execute(sql, values)
    connection.commit()
    cursor.close()
    connection.close()

2、将图片转换为Base64编码的字符串存储

mysql管理,mysql管理图片数据2022年更新(mysql 管理)mysql管理,mysql管理图片数据2022年更新(mysql 管理)

另一种将图片存储到MySQL数据库的方法是将图片转换为Base64编码的字符串,这样可以减少存储空间的需求,但在显示图片时需要对字符串进行解码,以下是将图片转换为Base64编码的字符串并存储到数据库的示例:

import base64
import mysql.connector
from PIL import Image
from io import BytesIO
def convert_image_to_base64(file_path):
    img = Image.open(file_path)
    img_byte_arr = BytesIO()
    img.save(img_byte_arr, format=img.format)
    img_base64 = base64.b64encode(img_byte_arr.getvalue()).decode('utf-8')
    return img_base64
def insert_image(name, file_path):
    connection = mysql.connector.connect(user='username', password='password', host='localhost', database='test')
    cursor = connection.cursor()
    img_base64 = convert_image_to_base64(file_path)
    sql = "INSERT INTO images (name, data) VALUES (%s, %s)"
    values = (name, img_base64)
    cursor.execute(sql, values)
    connection.commit()
    cursor.close()
    connection.close()

MySQL数据库中的图片数据查询与展示

1、从数据库中查询图片数据并显示在网页上

要从数据库中查询图片数据并显示在网页上,可以使用以下步骤:

在HTML页面中创建一个<img>标签;

在后端代码中查询数据库并获取图片数据的Base64编码字符串;

mysql管理,mysql管理图片数据2022年更新(mysql 管理)mysql管理,mysql管理图片数据2022年更新(mysql 管理)

将Base64编码字符串解码为二进制数据;

将二进制数据写入到响应对象中;

在浏览器中查看图片。

示例代码如下:

from flask import Flask, send_file, render_template_string, url_for
import mysql.connector
from PIL import Image from io import BytesIOimport base64import osdef convert_image_to_base64(file_path): ...def get_image(name): connection = mysql.connector.connect(user='username', password='password', host='localhost', database='test') cursor = connection.cursor() img_base64 = "" try: cursor.execute("SELECT data FROM images WHERE name=%s", (name)) result = cursor.fetchone() if result: img_base64 = result[0] finally: cursor.close() connection.close() return img_base64if __name__ == '__main__': app = Flask(__name__) @app.route('/image/<name>') def image(name): img_base64 = get_image(name) if img_base64: img = Image.open(BytesIO(base64.b64decode(img_base64))) return send_file(img, mimetype='image/png') else: return render_template_string("<h1>Image not found</h1>") app.run()```
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。