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解析html开发库pyquery使用方法
Feb 07 Python
Python获取文件ssdeep值的方法
Oct 05 Python
Python的迭代器和生成器使用实例
Jan 14 Python
python实现中文输出的两种方法
May 09 Python
django之跨表查询及添加记录的示例代码
Oct 16 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
Python爬虫 bilibili视频弹幕提取过程详解
Jul 31 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
python eventlet绿化和patch原理
Nov 21 Python
Python中对象的比较操作==和is区别详析
Feb 12 Python
python实现自定义日志的具体方法
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对gzip文件或者字符串解压实例参考
2008/07/25 PHP
PHP 数组入门教程小结
2009/05/20 PHP
微盾PHP脚本加密专家php解密算法
2020/09/13 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
JavaScript 全角转半角部分
2009/10/28 Javascript
使用js获取QueryString的方法小结
2010/02/28 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中列表和元组的相关语句和方法讲解
2015/08/20 Python
常见python正则用法的简单实例
2016/06/21 Python
Python----数据预处理代码实例
2019/03/20 Python
Python使用crontab模块设置和清除定时任务操作详解
2019/04/09 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
基于Python词云分析政府工作报告关键词
2020/06/02 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
班组安全员工作职责
2014/02/01 职场文书
体育教学随笔感言
2014/02/24 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
公司感谢信范文
2015/01/22 职场文书
人事文员岗位职责
2015/02/04 职场文书
mysql知识点整理
2021/04/05 MySQL
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript