pymysql(part4)--mysql存储图片信息
生活随笔
收集整理的這篇文章主要介紹了
pymysql(part4)--mysql存储图片信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
利用pymysql,在mysql中存儲圖片信息的案例分析。
案例分析
(將圖片存儲到數據庫,再從數據庫中獲取出來)
- 存儲圖片有兩種形式:
1.存儲圖片路徑(字符串),占空間小,但是數據容易丟失;
2.存儲圖片的二進制文件,數據不容易丟失,但占空間大.
在這個案例中,我們在創建表Images,既存儲圖片路徑,又存儲圖片的二進制文件
注意! 因為圖片是二進制文件,所以在用py讀寫jpg文件時,要用rb和wb.用mysql存儲圖片數據時,要用BLOB類型字段存儲。
首先我們新建一個數據表:
我們看到我們的F:\MyStudio\PythonStudio\goatbishop.project01\image路徑下有3張可耐的小白兔圖片:
我們利用pymysql將圖片數據進mysql:
由于我們的data字段數據較多,在cmd不方便顯示(想在cmd里顯示也行,cmd大概會崩潰),所以,我們在mysql的官方工具Workbench里看一下:
可以看到,導入數據成功!
那我們怎么獲取圖片呢?看下面這段代碼:
再看一下路徑F:\MyStudio\PythonStudio\goatbishop.project01\new_image下有沒有我們想要的圖片:
有呢!成功!
最后,我們給出將圖片導入mysql代碼,和導出mysql代碼。
導入mysql:
#-*-coding:utf-8-*- #coding=utf-8 """ Created on Thu Feb 13 14:59:17 2020@author: goatbishop """import pymysql db = pymysql.connect(host = '127.0.0.1',port = 3306,user = 'root',passwd = '19970928',database = 'stu',charset = 'utf8') #獲取游標對象 cur = db.cursor()for i in range(1,4):image_name = 'IMG%d.jpg' % iimage_path = 'image/%s' % image_namewith open(image_path, "rb") as fd:data = fd.read()try:sql = "insert into Images \values(%s, %s,%s, %s);"cur.execute(sql, [str(i), image_name, image_path, data])db.commit()except Exception as e:db.rollback()print("錯誤信息: ",e)cur.close() db.close()導出mysql:
#-*-coding:utf-8-*- #coding=utf-8 """ Created on Thu Feb 13 14:59:17 2020@author: goatbishop """import pymysql db = pymysql.connect(host = '127.0.0.1',port = 3306,user = 'root',passwd = '19970928',database = 'stu',charset = 'utf8') #獲取游標對象 cur = db.cursor()sql = "select * from Images;"cur.execute(sql) for image in cur.fetchall():with open('new_image/%s' % image[1],'wb') as fd:fd.write(image[3])cur.close() db.close()總結
以上是生活随笔為你收集整理的pymysql(part4)--mysql存储图片信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 很遗憾这样认识你 领英中国APP&ldq
- 下一篇: R语言之连接mysql数据库