Python如何向SQLServer存储二进制图片


Posted in Python onJune 08, 2020

需求是需要用python往 SqlServer中的image类型字段中插入二进制图片

核心代码,研究好几个小时的代码:

安装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 相关文章推荐
使用python编写android截屏脚本双击运行即可
Jul 21 Python
在Python的Flask框架中实现全文搜索功能
Apr 20 Python
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
May 29 Python
numpy中矩阵合并的实例
Jun 15 Python
python实现遍历文件夹修改文件后缀
Aug 28 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
Python快速优雅的批量修改Word文档样式
May 20 Python
Python多线程实用方法以及共享变量资源竞争问题
Apr 12 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 #Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 #Python
使用Python FastAPI构建Web服务的实现
Jun 08 #Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 #Python
给ubuntu18安装python3.7的详细教程
Jun 08 #Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 #Python
使用Numpy对特征中的异常值进行替换及条件替换方式
Jun 08 #Python
You might like
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
jQuery实现验证码功能
2017/03/17 Javascript
React Native使用百度Echarts显示图表的示例代码
2017/11/07 Javascript
vue 简单自动补全的输入框的示例
2018/03/12 Javascript
JS实现json对象数组按对象属性排序操作示例
2018/05/18 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
详解node.js 事件循环
2020/07/22 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
2020/10/30 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
python实现支持目录FTP上传下载文件的方法
2015/06/03 Python
Python冒泡排序注意要点实例详解
2016/09/09 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
python 文件操作删除某行的实例
2017/09/04 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
国际会议邀请函范文
2014/01/16 职场文书
作弊检讨书1000字
2014/02/01 职场文书
教师个人发展总结
2015/02/11 职场文书
公司员工奖惩制度
2015/08/04 职场文书
2016见义勇为事迹材料汇总
2016/03/01 职场文书
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android