当前位置:Gxlcms > 数据库问题 > python+ mysql存储二进制流的方式

python+ mysql存储二进制流的方式

时间:2021-07-01 10:21:17 帮助过:39人阅读

很多时候我们为了管理方便会把依稀很小的图片存入数据库,有人可能会想这样会不会对数据库造成很大的压力,其实大家可以不用担心,因为我说过了,是存储一些很小的图片,几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存储二进制图片的方法就将完了

python+ mysql存储二进制流的方式

标签:常用   方便   pen   pytho   medium   function   plain   二进制流   int   

人气教程排行