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