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通过文件头判断文件类型
Oct 30 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
用python写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
python射线法判断检测点是否位于区域外接矩形内
Jun 28 Python
简单了解python单例模式的几种写法
Jul 01 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
Python函数递归调用实现原理实例解析
Aug 11 Python
浅谈python锁与死锁问题
Aug 14 Python
Python基于内置函数type创建新类型
Oct 22 Python
flask框架中的cookie和session使用
Jan 31 Python
python 利用 PIL 将数组值转成图片的实现
Apr 12 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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根据年月获取季度的方法
2014/03/31 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
PHP编写的图片验证码类文件分享
2016/06/06 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
JS类中定义原型方法的两种实现的区别
2007/03/08 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
js修改table中Td的值(定义td的双击事件)
2013/01/10 Javascript
jquery的总体架构分析及实现示例详解
2014/11/08 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
基于Phantomjs生成PDF的实现方法
2016/11/07 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
JS删除String里某个字符的方法
2021/01/06 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
vue中后端做Excel导出功能返回数据流前端的处理操作
2020/09/08 Javascript
python快速排序代码实例
2013/11/21 Python
解决python报错MemoryError的问题
2018/06/26 Python
对Python实现累加函数的方法详解
2019/01/23 Python
python 实现将Numpy数组保存为图像
2020/01/09 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
师范大学应届生求职信
2013/11/21 职场文书
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
群众路线剖析材料
2014/09/30 职场文书
网站出售协议书范文
2014/10/10 职场文书
签约仪式致辞
2015/07/30 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
SQL Server 忘记密码以及重新添加新账号
2022/04/26 SQL Server