Python如何向SQLServer存储二进制图片

 更新时间:2020年06月08日 10:09:14   作者:淋哥  
这篇文章主要介绍了Python如何向SQLServer存储二进制图片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

需求是需要用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图片到数据库里面。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 代码详解django中数据库设置

    代码详解django中数据库设置

    在本篇文章里小编给大家分享了关于django中数据库设置的相关实例内容,有兴趣的朋友们跟着学习下。
    2019-01-01
  • 详解Python的Django框架中的templates设置

    详解Python的Django框架中的templates设置

    这篇文章主要介绍了Python的Django框架中的TEMPLATES设置,主要讲述了Django1.8版本后的一些新特性,需要的朋友可以参考下
    2015-05-05
  • python的exec、eval使用分析

    python的exec、eval使用分析

    这篇文章主要介绍了python的exec、eval使用分析,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python中的取模运算方法

    Python中的取模运算方法

    今天小编就为大家分享一篇Python中的取模运算方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • scrapy中的spider传参实现增量的方法

    scrapy中的spider传参实现增量的方法

    有时候需要根据项目的实际需求向spider传递参数来控制spider的运行方式,本文主要介绍了scrapy中的spider传参实现增量的方法,具有一定的参考价值,感兴趣的可以了解一下
    2022-06-06
  • Keras实现Vision Transformer VIT模型示例详解

    Keras实现Vision Transformer VIT模型示例详解

    这篇文章主要为大家介绍了Keras实现Vision Transformer VIT模型示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python中namedtuple函数的用法解析

    python中namedtuple函数的用法解析

    这篇文章主要介绍了python中namedtuple函数的用法解析,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-08-08
  • python隐藏终端执行cmd命令的方法

    python隐藏终端执行cmd命令的方法

    今天小编就为大家分享一篇python隐藏终端执行cmd命令的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 多个版本的python共存时使用pip的正确做法

    多个版本的python共存时使用pip的正确做法

    这篇文章主要介绍了多版本python共存时使用pip的正确做法,帮助有多个python版本需求的人可以正确的导包,感兴趣的朋友可以了解下
    2020-10-10
  • Python基于回溯法子集树模板解决找零问题示例

    Python基于回溯法子集树模板解决找零问题示例

    这篇文章主要介绍了Python基于回溯法子集树模板解决找零问题,简单描述了找零问题并结合具体实例形式分析了Python使用回溯法子集树模板解决找零问题的步骤、实现方法与相关操作技巧,需要的朋友可以参考下
    2017-09-09

最新评论