#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的形式存储在数据库中。
当然除了图片之外的其他多媒体形式都可以直接存储在数据库中,但是如果媒体比较大的情况下,直接存储在数据库中不是一个好的点子,
读取和存储要花费大量的时间,不如以文件的方式存储,将文件路径存储在数据表中、