Heim  >  Artikel  >  Backend-Entwicklung  >  Speichern Sie Bilder mit Python in der Datenbank

Speichern Sie Bilder mit Python in der Datenbank

高洛峰
高洛峰Original
2016-10-18 10:36:301916Durchsuche

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)


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn