編碼的世界 / 優質文選 / 歷史

【原創】python3將圖片寫入mysql數據庫(一)


2022年7月08日
-   

01.環境准備
使用的包:pymysql
pymysql下載地址:https://pypi.python.org/pypi/PyMySQL#downloads
02.pymysql安裝:
https://blog.csdn.net/u013952400/article/details/80432452
03.mysql的blob字段解釋:
轉自:https://blog.csdn.net/cbbbc/article/details/49024011
BLOB類型的字段用於存儲二進制數據
MySQL中,BLOB是個類型系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,這幾個類型之間的唯一區別是在存儲文件的最大大小上不同。
MySQL的四種BLOB類型
類型 大小(單位:字節)
TinyBlob 最大 255
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
04.示例代碼:
# -*- coding=utf-8 -*-
import pymysql
import sys
#讀取圖片文件
#blob最大只能存65K的文件
#fp = open("test.jpg",'rb',encoding='utf-8')
fp = open("test2.jpg",'rb')
img = fp.read()
fp.close()
# 創建連接
conn = pymysql.connect(host='192.168.100.128',
port=3306,
user='root',
passwd='root',
db='python_operation_01',
charset='utf8',
use_unicode=True,)
# 創建遊標
cursor = conn.cursor()
#注意使用Binary()函數來指定存儲的是二進制
#cursor.execute("INSERT INTO demo_pic_repo SET touxiang_data= %s" % pymysql.Binary(img))
sql="INSERT INTO demo_pic_repo (touxiang_data_blob) VALUES (%s)"
cursor.execute(sql , img)
# 提交,不然無法保存新建或者修改的數據
conn.commit()
# 關閉遊標
cursor.close()
# 關閉連接
conn.close()

05.注意事項:
一定要主要到blob只能最大存儲65K的字節流文件

熱門文章