利用python向SQL Server存储图片(一行表存储多个图片)

用到的软件:python3.9.5   pycharm2021 SQL Server2022

第一步:在python中下载pymssql

import pymssql
import os        # 这个包是为了后面从文件夹中拿取图片用的

第二步:用python连接 SQL Server

conn = pymssql.connect(server='LAPTOP-UITU4HR1', user='sa', password='sa', database='vein')
cursor = conn.cursor()  # 确认并定位光标位置

 相关参数解释:

server:服务器名称

user:登录名

password:密码

database:想要把数据存储的数据库名称

利用python向SQL Server存储图片(一行表存储多个图片)_第1张图片

利用python向SQL Server存储图片(一行表存储多个图片)_第2张图片

 这里小编建议使用SQL Server 身份验证,一开始使用时可能直接使用的是windows,但是可用通过设置,这样能有获得用户名等选项,出错率较低。

使用SQL Server 身份验证参考文章:(28条消息) sql server 2019 用户‘sa‘登录失败(错误18456)解决方案图解_dongmuxg的博客-CSDN博客_sqlserver用户sa登录失败icon-default.png?t=M85Bhttps://blog.csdn.net/dongmuxg/article/details/118963669?ops_request_misc=&request_id=&biz_id=102&utm_term=%E3%80%81SQL%20Server%E7%9A%84sa%E7%94%A8%E4%B8%8D%E4%BA%86%E4%BA%86&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-118963669.142^v47^pc_rank_34_1,201^v3^control&spm=1018.2226.3001.4187

 第三步:创建表,创建数据表可直接在pycharm里面采用代码创建,这样便于设计与修改

cursor.execute("""
        if object_id('tabel1','u') is not NULL
        drop table tabel1
        create table tabel1(
        id int not NULL,
        p1 image,p2 image,p3 image,p4 image,
        p5 image,p6 image,
        primary key(id)
        )
        """)

相关代码解释:

table1:想要创建表的名称,这个根据需要设置

p1 image:将第二列命名为p1,并可存入二进制图片,格式为image(image格式是SQL Server专门用来存储图片的格式),小编这里示范的是六张图片

第四步:从电脑文件夹中获取图片,并将其转化为二进制

source_path = r"D:\photo"+'\\'       # 图片所在文件夹地址
img = []            # 用来存储转化为二进制后的图片数据
dirs = os.listdir(source_path)    # 获取文件夹中各个图片的名称
for dir in dirs:
    photo_path = os.path.join(source_path,dir)    # 获取各个图片的地址
    photo_open = open(photo_path,'rb')    # 采用二进制方式读取
    img.append(photo_open.read())
    photo_open.close()

    

第五步:将二进制图片存储到数据库中

cursor.executemany(
        "insert into tabel1 values (%d,%s,%s,%s,%s,%s,%s)",
        [(1,img[0],img[1],img[2],img[3],img[4],img[5])]
        )
conn.commit()        # 写入数据库
conn.close()
 
  

 

你可能感兴趣的:(sql,数据库,python)