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中sleep函数用法实例分析
Apr 29 Python
Python3实现从指定路径查找文件的方法
May 22 Python
python实现批量改文件名称的方法
May 25 Python
Python学习小技巧之列表项的拼接
May 20 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
老生常谈python中的重载
Nov 11 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 Python
Pandas实现一列数据分隔为两列
May 18 Python
python代码实现扫码关注公众号登录的实战
Nov 01 Python
Python first-order-model实现让照片动起来
Jun 25 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版(2)
2006/10/09 PHP
PHP中的session安全吗?
2016/01/22 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
JavaScript 继承使用分析
2011/05/12 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
js+css3制作时钟特效
2016/10/16 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
2018/10/22 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
jQuery 实现扁平式小清新导航
2020/07/07 jQuery
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
python中管道用法入门实例
2015/06/04 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
Python的多维空数组赋值方法
2018/04/13 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Python测试模块doctest使用解析
2019/08/10 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
护理医院见习报告
2014/11/03 职场文书
html css3不拉伸图片显示效果
2021/06/07 HTML / CSS
SQL Server Agent 服务无法启动
2022/04/20 SQL Server