dmm_star 发表于 2013-2-1 11:53:22

mysql处理存储二进制图片

关键字: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()  
[*]        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() 
页: [1]
查看完整版本: mysql处理存储二进制图片