关键字:mysql;图片数据导入表
参考url:http://xiaolin0199.iteye.com/blog/585519
- import MySQLdb
- class BlobDataTestor:
- def __init__ ( self ):
- self .conn = MySQLdb.connect(host= 'localhost' ,user= '<your user>' ,passwd= '<your pw>' ,db= '0' )
- def __del__ ( self ):
- try :
- self .conn.close()
- except :
- pass
- def closedb( self ):
- self .conn.close()
- def setup( self ):
- cursor = self .conn.cursor()
- cursor.execute( """
- CREATE TABLE IF NOT EXISTS `Dem_Picture` (
- `ID` int(11) NOT NULL auto_increment,
- `PicData` mediumblob,
- PRIMARY KEY (`ID`)
- ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
- """ )
- def teardown( self ):
- cursor = self .conn.cursor()
- try :
- cursor.execute( "Drop Table Dem_Picture" )
- except :
- pass
- # self.conn.commit()
- def testRWBlobData( self ):
- # 读取源图片数据
- f = open( "C:\\11.jpg" , "rb" )
- b = f.read()
- f.close()
- # 将图片数据写入表
- cursor = self .conn.cursor()
- cursor.execute( "INSERT INTO Dem_Picture (PicData) VALUES (%s)" , (MySQLdb.Binary(b)))
- # self.conn.commit()
- # 读取表内图片数据,并写入硬盘文件
- cursor.execute( "SELECT PicData FROM Dem_Picture ORDER BY ID DESC limit 1" )
- d = cursor.fetchone()[0 ]
- cursor.close()
- f = open( "C:\\22.jpg" , "wb" )
- f.write(d)
- f.close()
- if __name__ == "__main__" :
- test = BlobDataTestor()
- try :
- test.setup()
- test.testRWBlobData()
- test.teardown()
- finally :
- test.closedb()
本文介绍如何使用Python的MySQLdb库在MySQL数据库中存储和读取二进制图片数据。通过创建一个名为`Dem_Picture`的表,包含一个`ID`字段和一个`PicData`的MediumBlob类型字段来存储图片。首先,从本地文件读取图片,然后将其写入数据库。接着,从表中读取图片数据并保存到新的文件中。
449

被折叠的 条评论
为什么被折叠?



