1. 程式人生 > >【原創】python3將圖片寫入mysql資料庫(一)

【原創】python3將圖片寫入mysql資料庫(一)

01.環境準備

使用的包:pymysql

pymysql下載地址:https://pypi.python.org/pypi/PyMySQL#downloads

02.pymysql安裝:

03.mysql的blob欄位解釋:

BLOB型別的欄位用於儲存二進位制資料MySQL中,BLOB是個型別系列,包括:TinyBlob、Blob、MediumBlob、LongBlob,這幾個型別之間的唯一區別是在儲存檔案的最大大小上不同。MySQL的四種BLOB型別型別 大小(單位:位元組)TinyBlob 最大 255Blob 最大 65KMediumBlob 最大 16MLongBlob 最大 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的位元組流檔案