python SQLServer 存储图片
需求是需要用python往 SqlServer中的image类型字段中插入二进制图片
核心代码,研究好几个小时的代码:
安装pywin32,adodbapi
安装pywin32,adodbapi image_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() # 读取图片,二进制格式,注意是rb f1 = 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", docimageid sql6 = " INSERT INTO docImages (DocId,docimageid,purpose) VALUES (%s,'%s','%s') " % (int(DocId), int(docimageid), 'doclogo') # print sql6 cursor.execute(sql6) conn.commit() #插入图片 cursor.execute('update docImages set Img=? where docimageid= ? ',(adodbapi.Binary(b), docimageid,)) conn.commit() print "图片保存成功" 先插入相关信息,再去update图片到数据库里面。
如果觉得对您有帮助,麻烦您点一下推荐,谢谢!
好记忆不如烂笔头
好记忆不如烂笔头
分类:
python
, SQL SERVER
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术