python mysql MySQLdb 存储文件

再者,在这里我们是想讲一种方法,python+ mysql存储二进制流的方式

这里用的是Mysqldb,python里面最常用的数据库模块

import MySQLdb   

class BlobDataTestor:   
    def __init__ (self):   
        self.conn = MySQLdb.connect(host='localhost',user='',passwd='',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 mysql存储二进制图片的方法就将完了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值