Python 프로그램을 사용하여 MySQL에 이미지를 저장하는 방법

WBOY
풀어 주다: 2023-04-19 15:16:08
앞으로
1392명이 탐색했습니다.

환경

Python 3.7.4
pymysql
8.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)
로그인 후 복사

Save to 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 pymysql


class Database():
	
	'''
		Description:
			database demo to store image in MySQL RDBMS
		Attributes:
			None
	'''
    
    def __init__(self):
        self.connection = pymysql.connect(host=&#39;<host name>&#39;,user=&#39;<user name>&#39;,passwd=&#39;<password>&#39;,db=&#39;<database name>&#39;,charset=&#39;utf8&#39;)
        self.cursor = self.connection.cursor()

	&#39;&#39;&#39;
		Description:
			create table to store images
		Args:
			None
		Return:
			None
	&#39;&#39;&#39;
    
    def create_image_table(self):
        sql = &#39;create table if not exists picture ( \
            image longblob);&#39;

        try:
            self.cursor.execute(sql)

            self.connection.commit()

        except pymysql.Error:
            print(pymysql.Error)
	
	&#39;&#39;&#39;
		Description:
			insert image into table
		Args:
			image:
				image to store
		Returns:
			None
	&#39;&#39;&#39;

    def insert_image(self, image):
        sql = "insert into picture(image) values(%s)"
        self.cursor.execute(sql, image)
        self.connection.commit()
	
	&#39;&#39;&#39;
		Description:
			get image from database
		Args:
			path:
				path to save image
		Returns:
			None
	&#39;&#39;&#39;	

    def get_image(self, path):
        sql = &#39;select * from picture&#39;
        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)
            
	&#39;&#39;&#39;
		Description:
			destruction method
		Args:
			None
		Returns:
			None
	&#39;&#39;&#39;
	
    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(&#39;./result.jpg&#39;)
로그인 후 복사

테스트 결과

Python 프로그램을 사용하여 MySQL에 이미지를 저장하는 방법

위 내용은 Python 프로그램을 사용하여 MySQL에 이미지를 저장하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!