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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
Python实现聊天机器人的示例代码
Jul 09 Python
Python3数据库操作包pymysql的操作方法
Jul 16 Python
python 模拟银行转账功能过程详解
Aug 06 Python
python使用sklearn实现决策树的方法示例
Sep 12 Python
python反转列表的三种方式解析
Nov 08 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
关于python中模块和重载的问题
Nov 02 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 读取文件内容代码(txt,js等)
2009/12/06 PHP
php中批量替换文件名的实现代码
2011/07/20 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
PHP中$_SERVER使用说明
2015/07/05 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
2016/08/02 Javascript
JS常用加密编码与算法实例总结
2016/12/22 Javascript
原生js实现电商侧边导航效果
2017/01/19 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
2020/08/27 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
python多线程http下载实现示例
2013/12/30 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
python实现与redis交互操作详解
2020/04/21 Python
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
车祸赔偿收入证明
2014/01/09 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
业务员自荐信范文
2014/04/20 职场文书
投标保密承诺书
2014/05/19 职场文书
暖春观后感
2015/06/08 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书