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求crc32值的方法
Oct 05 Python
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
python获取标准北京时间的方法
Mar 24 Python
python字符串str和字节数组相互转化方法
Mar 18 Python
python3.4用循环往mysql5.7中写数据并输出的实现方法
Jun 20 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
python中reduce()函数的使用方法示例
Sep 29 Python
python 执行shell命令并将结果保存的实例
May 11 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
详解opencv中画圆circle函数和椭圆ellipse函数
Dec 27 Python
python实现根据给定坐标点生成多边形mask的例子
Feb 18 Python
Python序列化模块JSON与Pickle
Jun 05 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从数组中随机抽取一些元素的代码
2012/11/05 PHP
探讨如何把session存入数据库
2013/06/07 PHP
PHP实现中国公民身份证号码有效性验证示例代码
2017/05/03 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
详解AngularJS controller调用factory
2017/05/19 Javascript
Angularjs实现数组随机排序的方法
2018/10/02 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
python机器学习实战之树回归详解
2017/12/20 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
python自动发微信监控报警
2019/09/06 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
介绍一下sql server的安全性
2014/08/10 面试题
一年级学生评语大全
2014/04/21 职场文书
学院党委班子四风问题自查报告及整改措施
2014/10/25 职场文书
2014年质检员工作总结
2014/11/18 职场文书
大班下学期个人总结
2015/02/13 职场文书
学校节水倡议书
2015/04/29 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
Nginx配置SSL证书出错解决方案
2021/03/31 Servers