Python向SQLServer存储二进制图片的方法
这篇文章主要讲解了Python向SQLServer存储二进制图片的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
需求是需要用python往 SqlServer中的image类型字段中插入二进制图片
核心代码,研究好几个小时的代码:
安装pywin32,adodbapiimage_url = "图片链接"try: image_result = session.get(url=image_url, headers=headers, stream=True)except: image_result = session.get(url=image_url, headers=headers, stream=True)local_filename = md5(image_url) + ".png"print "图片下载成功"with open(local_filename, 'wb') as f: for chunk in image_result.iter_content(chunk_size=1024): if chunk: # filter out keep-alive new chunks f.write(chunk) f.flush() f.close()# 读取图片,二进制格式,注意是rbf1 = open(local_filename, "rb", )b = f1.read()f1.close()# adodbapi支持插入二进制数据流Cfg = {'server': 'XXXXXXX9', 'password': 'XXXXXXX', 'db': 'XXXXXXX'}constr = "Provider=SQLOLEDB.1; Initial Catalog=%s; Data Source=%s; user ID=%s; Password=%s; " % (Cfg['db'], Cfg['server'], 'drc_sql', Cfg['password'])conn = adodbapi.connect(constr)cursor = conn.cursor()print "DocId", DocId# docimageid在数据表是主键docimageid = str(DocId) + str(image_location)print "docimageid", docimageidsql6 = " INSERT INTO docImages (DocId,docimageid,purpose) VALUES (%s,'%s','%s') " % (int(DocId), int(docimageid), 'doclogo')# print sql6cursor.execute(sql6)conn.commit()#插入图片cursor.execute('update docImages set Img=? where docimageid= ? ',(adodbapi.Binary(b), docimageid,))conn.commit()print "图片保存成功"先插入相关信息,再去update图片到数据库里面。
看完上述内容,是不是对Python向SQLServer存储二进制图片的方法有进一步的了解,如果还想学习更多内容,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。