Python如何向SQLServer儲存二進位制圖片
阿新 • • 發佈:2020-06-08
需求是需要用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,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),)) conn.commit() print "圖片儲存成功" 先插入相關資訊,再去update圖片到資料庫裡面。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。