zoukankan      html  css  js  c++  java
  • python+ mysql存储二进制流的方式

    很多时候我们为了管理方便会把依稀很小的图片存入数据库,有人可能会想这样会不会对数据库造成很大的压力,其实大家可以不用担心,因为我说过了,是存储一些很小的图片,几K的,没有问题的!

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

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

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    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):    
        # 读取源图片数据                  
            = open"C:\11.jpg" "rb" )   
            = 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" )   
            = cursor.fetchone()[0]   
            cursor.close()   
       
            = 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存储二进制图片的方法就将完了

  • 相关阅读:
    VOA 2009/11/02 DEVELOPMENT REPORT In Kenya, a Better Life Through Mobile Money
    2009.11.26教育报道在美留学生数量创历史新高
    Java中如何实现Tree的数据结构算法
    The Python Tutorial
    VOA HEALTH REPORT Debate Over New Guidelines for Breast Cancer Screening
    VOA ECONOMICS REPORT Nearly Half of US Jobs Now Held by Women
    VOA ECONOMICS REPORT Junior Achievement Marks 90 Years of Business Education
    VOA 2009/11/07 IN THE NEWS A Second Term for Karzai; US Jobless Rate at 10.2%
    Ant入门
    Python 与系统管理
  • 原文地址:https://www.cnblogs.com/jiangzhaowei/p/6596346.html
Copyright © 2011-2022 走看看