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实现异步回调机制代码分享
Jan 10 Python
介绍Python中的fabs()方法的使用
May 14 Python
Python实现爬取需要登录的网站完整示例
Aug 19 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
详解python3中zipfile模块用法
Jun 18 Python
对Python 语音识别框架详解
Dec 24 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
Dec 25 Python
Python动态声明变量赋值代码实例
Dec 30 Python
numpy的Fancy Indexing和array比较详解
Jun 11 Python
Python机器学习之底层实现KNN
Jun 20 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中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
yii框架表单模型使用及以数组形式提交表单数据示例
2014/04/30 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP实现QQ登录实例代码
2016/01/14 PHP
php加密解密字符串示例
2016/10/13 PHP
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
javascript数组使用调用方法汇总
2007/12/08 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
js字符串转成JSON
2013/11/07 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
浅谈Vuejs中nextTick()异步更新队列源码解析
2017/12/31 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
Python多项式回归的实现方法
2019/03/11 Python
Django中日期时间型字段进行年月日时分秒分组统计
2020/11/27 Python
阿玛尼化妆品美国官网:Giorgio Armani Beauty
2017/02/02 全球购物
俄罗斯苹果优质经销商商店:iPort
2020/05/27 全球购物
2014年父亲节活动方案
2014/03/06 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
申论倡议书范文
2014/05/13 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server