溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python向SQLServer存儲(chǔ)二進(jìn)制圖片的方法

發(fā)布時(shí)間:2020-07-18 09:28:17 來源:億速云 閱讀:338 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要講解了Python向SQLServer存儲(chǔ)二進(jìn)制圖片的方法,內(nèi)容清晰明了,對(duì)此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會(huì)有幫助。

需求是需要用python往 SqlServer中的image類型字段中插入二進(jìn)制圖片

核心代碼,研究好幾個(gè)小時(shí)的代碼:

安裝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()

# 讀取圖片,二進(jìn)制格式,注意是rb
f1 = open(local_filename, "rb", )
b = f1.read()
f1.close()

# adodbapi支持插入二進(jìn)制數(shù)據(jù)流
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在數(shù)據(jù)表是主鍵

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 "圖片保存成功"

先插入相關(guān)信息,再去update圖片到數(shù)據(jù)庫里面。

看完上述內(nèi)容,是不是對(duì)Python向SQLServer存儲(chǔ)二進(jìn)制圖片的方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI