>  기사  >  백엔드 개발  >  Python을 사용하여 데이터베이스에 이미지 저장

Python을 사용하여 데이터베이스에 이미지 저장

高洛峰
高洛峰원래의
2016-10-18 10:36:301877검색

일반적으로 이미지를 파일 시스템에 저장하고 파일 경로만 데이터베이스에 저장하지만 때로는 이미지 바이너리를 데이터베이스에 저장해야 하는 특별한 요구 사항이 있습니다.

오늘은 python+mysql 방식을 사용합니다

MYSQL은 데이터베이스에 이미지 저장을 지원하므로 더 큰 특수 필드 BLOB(Binary Large Object)가 있습니다. 바이너리 객체

에는 바이너리를 저장하는 더 큰 LONGBLOB도 있습니다.

참고: 필드 길이를 너무 작게 설정하면 그림이 나타나므로 필드를 더 크게 설정하십시오. 상황의 일부만 표시됩니다. 둘째: 데이터의 양이 많은 경우에는 이 방법을 사용하지 마십시오. MySQL의 빅 데이터 쿼리 속도는 매우 느리기 때문입니다.

아래 코드:

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


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.