Heim > Artikel > Backend-Entwicklung > Speichern Sie Bilder mit Python in der Datenbank
Im Allgemeinen speichern wir Bilder im Dateisystem und speichern nur den Dateipfad in der Datenbank, aber manchmal gibt es spezielle Anforderungen: Speichern der Bildbinärdatei in der Datenbank.
Heute verwenden wir die Python-MySQL-Methode
MYSQL unterstützt das Speichern von Bildern in der Datenbank und verfügt dementsprechend über ein spezielles Feld BLOB (Binary Large Object), also größere Binärobjekte
haben auch ein größeres LONGBLOB, das Binärdaten speichert.
Hinweis: Versuchen Sie, das Feld größer einzustellen, denn wenn die Feldlänge zu klein eingestellt ist, wird das Bild nur teilweise angezeigt. Zweitens: Wenn die Datenmenge groß ist, vermeiden Sie die Verwendung dieser Methode, da MySQL beim Abfragen großer Datenmengen sehr langsam ist.
Der Code unten:
#!/usr/bin/python #-*- coding: UTF-8 -*- import MySQLdb as mysql import sys try: #读取图片文件 fp = open("./test.jpg") img = fp.read() fp.close() except IOError,e: print "Error %d %s" % (e.args[0],e.args[1]) sys.exit(1) try: #mysql连接 conn = mysql.connect(host='localhost',user='root',passwd='123456',db='test') cursor = conn.cursor() #注意使用Binary()函数来指定存储的是二进制 cursor.execute("INSERT INTO images SET data='%s'" % mysql.Binary(img)) #如果数据库没有设置自动提交,这里要提交一下 conn.commit() cursor.close() #关闭数据库连接 conn.close() except mysql.Error,e: print "Error %d %s" % (e.args[0],e.args[1]) sys.exit(1)