Python 读写图片

#coding:utf-8
'''
用来进行初始化数据库的模块
'''
import MySQLdb as mdb
import DBconf
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

tablequestion = 'hf_question'

def createDB():
	conn = mdb.connect(host=DBconf.host,user = DBconf.user,passwd = DBconf.passwd)
	cursor = conn.cursor()
	cursor.execute("drop database if exists %s;\
					create database if not exists %s \
					default character set utf8",(DBconf.db,DBconf.db))
	cursor.execute("use historyfinal")
	
def insertPicture(imgurl,pid):
	try:
	 	#用读文件模式打开图片 
	 	fin = open(imgurl,'rb') 
	 	#将文本读入img对象中 
	 	img = fin.read()
	 	fin.close() 
	except IOError, e: 
		#如果出错,打印错误信息 
	 	print "Error %d: %s" % (e.args[0],e.args[1]) 
	 	sys.exit(1)
 	try: 
 		#链接mysql,获取对象 
 		conn = mdb.connect(host=DBconf.host,user=DBconf.user,passwd=DBconf.passwd, db=DBconf.db,charset='utf8') 
 		#获取执行cursor 
 		cursor = conn.cursor() 
 		#直接将数据作为字符串,插入数据库 
 		cursor.execute("UPDATE hf_question set picture =%s where pid=%s" , (mdb.Binary(img),pid))
 		#提交数据
 		conn.commit() 
 		#提交之后,再关闭cursor和链接 
 		cursor.close() 
 		conn.close() 
 	except mdb.Error, e: 
 		#若出现异常,打印信息 
 		print "Error %d: %s" % (e.args[0],e.args[1]) 
 		sys.exit(1)


 
 


图片的存储方式有两种:

一种是以文件的方式存储,通过文件管理系统进行读取

另外一种方式是将图片以blob的形式存储在数据库中。

当然除了图片之外的其他多媒体形式都可以直接存储在数据库中,但是如果媒体比较大的情况下,直接存储在数据库中不是一个好的点子,

读取和存储要花费大量的时间,不如以文件的方式存储,将文件路径存储在数据表中、

你可能感兴趣的:(数据库,python,图片,database)