我有一个python代码,我想将一个图像保存到数据库中,并且该图像是一个对象(图像)
这是我要保存在桌子上的桌子
创建表
project
(project_name
varchar(200)COLLATE utf8_bin不为空,panelimg
longblob NOT NULL,status
int(1)NOT NULL,) ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;
这是我写的,但是不能正常工作
conv = convertToBinaryData(origimg)
cursor.execute("UPDATE project SET panelimg=origimg where status = 0 and email = 'snoo@gmail.com'")
其中图像中的原始图像作为对象(图像)
这是转换为二进制的功能:
def convertToBinaryData(filename):
#Convert digital data to binary format
with open(filename, 'rb') as file:
binaryData = file.read()
return binaryData
我收到此错误,所以我需要帮助
convertToBinaryData中的文件“ K-mean4-draw6-database.py”,第17行 使用open(filename,'rb')作为文件:TypeError:预期的str,字节或os.PathLike对象,而不是Image
请提出任何建议,谢谢
答案 0 :(得分:1)
只要需要将图像存储在数据库中,就可以将图像转换为base64字符串,并且在从数据库中获取数据时可以使用相反的步骤。
下面是如何使用base64的代码:
import base64
with open("filepath/filename", "rb") as imageFile:
image_string = base64.b64encode(imageFile.read())