Home >Backend Development >Python Tutorial >Save images to database using python

Save images to database using python

高洛峰
高洛峰Original
2016-10-18 10:36:301930browse

Generally, we store images in the file system and only store the file path in the database, but sometimes there are special needs: storing the image binary in the database.

Today we are using the python+mysql method

MYSQL supports storing images into the database, and accordingly has a special field BLOB (Binary Large Object), which is a larger binary object

There is also Larger binary LONGBLOB;

Note here: try to set the field as large as possible, because if the field length is set too small, only part of the picture will be displayed. Second: If the amount of data is large, try to avoid using this method, because mysql will be very slow to query big data.

The code below:

#!/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)


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn