python+pymysql对数据库进行增、删、改、查操作

一、概述

接口测试中,应用到数据库操作的场景:

 1.校验测试数据

接口发送请求后明确会对数据库中的某个字段进行修改(编辑,更新、删除操作),但,响应结果中无该字段数据时。

例如:删除订单接口,is_delete 字段,没有 在响应结果中出现! 需要借助数据库校验! 例如删除订单接口,

2.构造测试数据

测试数据使用一次就失效,测试前,无法保证测试数据是否存在。

二、pyMySql使用步骤

2.1 安装第三方库PyMySQL
# 方法一:
pip install PyMySQL
# 方法二:
pip install PyMySQL -i https://pypi.douban.com/simple/
2.2 数据库查询操作

# 1. 导包
import pymysql
# 2. 建立连接
conn = pymysql.connect(host="10.51.102.22", port=3306, user="xxxx",
                       password="fxxxxxxxXPF33", database="xxxxxx", charset="utf8")
# 3. 获取游标
cursor = conn.cursor()  # 指向 0 号位置。
# 4. 执行 sql 语句(查询)
cursor.execute("select * from charge_order;")
# 5. 获取结果 - 提取第一条
res1 = cursor.fetchone()
print("res1 =", res1)
print("res1类型", type(res1))
# 修改游标位置:回零
cursor.rownumber = 0
# 关闭游标
cursor.close()
# 7. 关闭连接
conn.close()
fetchone() :从结果集中,提取一行。
fetchmany(size) :从结果集中,提取 size 行。
fetchall() :提取所有结果集。
2.3 数据库增、删、改操作

 

import pymysql

# 定义全局变量
conn = None
cursor = None

try:
    # 2. 创建连接
    conn = pymysql.connect(host="10.51.102.22", port=3306, user="xxx",
                           password="xxxx33", database="xxxx", charset="utf8")
    # 3. 获取游标
    cursor = conn.cursor()

    # 4. 执行 insert 语句(新增运营商信息)
    cursor.execute("INSERT INTO cs_operator "
                   "(id, pay_app_id)"
                   " VALUES(1036, '6124105280304');")

    # 查看 sql执行,影响多少行
    print("影响的行数:", conn.affected_rows())

    # 5. 提交事务
    conn.commit()

except Exception as err:
    print("插入数据错误:", str(err))
    # 回滚事务
    conn.rollback()

finally:
    # 6. 关闭游标
    cursor.close()
    # 7. 关闭连接
    conn.close()

删除、修改语句除了sql语句的参数不一致,其余步骤同上。

2.4 数据库工具类封装
import pymysql


# 封装数据库工具类
class DBUtil(object):
    # 添加类属性
    conn = None

    @classmethod
    def __get_conn(cls):
        # 判断 conn 是否为空,如果是,再创建
        if cls.conn is None:
            cls.conn = pymysql.connect(host="10.51.102.22", port=3306, user="xxxxxxxxxxx",
                           password="xxxxxxxx", database="xxxxxxx", charset="utf8")
        # 返回 非空连接
        return cls.conn

    @classmethod
    def __close_conn(cls):
        # 判断,conn 不为空,需要关闭。
        if cls.conn is not None:
            cls.conn.close()
            cls.conn = None

    # 常用方法:查询一条
    @classmethod
    def select_one(cls, sql):
        cursor = None
        res = None
        try:
            # 获取连接
            cls.conn = cls.__get_conn()

            # 获取游标
            cursor = cls.conn.cursor()

            # 执行 查询语句
            cursor.execute(sql)

            # 提取一条结果
            res = cursor.fetchone()

        except Exception as err:
            print("查询sql错误:", str(err))
        finally:
            # 关闭游标
            cursor.close()

            # 关闭连接
            cls.__close_conn()

            # 将查询sql执行的 结果,返回
            return res

    # 常用方法:增删改
    @classmethod
    def uid_db(cls, sql):
        cursor = None
        try:
            # 获取连接
            cls.conn = cls.__get_conn()

            # 获取游标
            cursor = cls.conn.cursor()

            # 执行 uid 语句
            cursor.execute(sql)
            print("影响的行数:", cls.conn.affected_rows())

            # 提交事务
            cls.conn.commit()

        except Exception as err:
            # 回滚事务
            cls.conn.rollback()
            print("增删改 SQL 执行失败:", str(err))

        finally:
            # 关闭游标
            cursor.close()
            # 关闭连接
            cls.__close_conn()

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python可以使用MySQLdb或者pymysql模块来连接MySQL数据库进行操作。 1. 连接数据库 使用MySQLdb模块连接MySQL数据库可以使用以下代码: ``` import MySQLdb # 打开数据库连接 db = MySQLdb.connect(host="localhost", user="root", password="123456", database="test") # 使用cursor()方法获取操作游标 cursor = db.cursor() # 关闭数据库连接 db.close() ``` 使用pymysql模块连接MySQL数据库可以使用以下代码: ``` import pymysql # 打开数据库连接 db = pymysql.connect(host="localhost", user="root", password="123456", database="test") # 使用cursor()方法获取操作游标 cursor = db.cursor() # 关闭数据库连接 db.close() ``` 2. 插入数据 使用execute()方法执行SQL语句可以插入一条数据,如下所示: ``` # SQL插入语句 sql = "INSERT INTO students(name, age, grade) VALUES ('Tom', 18, 'A')" # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit() ``` 3. 询数据 使用execute()方法执行SQL语句可以询数据,如下所示: ``` # SQL询语句 sql = "SELECT * FROM students" # 执行SQL语句 cursor.execute(sql) # 获取所有记录列表 results = cursor.fetchall() for row in results: id = row[0] name = row[1] age = row[2] grade = row[3] # 打印结果 print("id=%d, name=%s, age=%d, grade=%s" % (id, name, age, grade)) ``` 4. 更新数据 使用execute()方法执行SQL语句可以更新数据,如下所示: ``` # SQL更新语句 sql = "UPDATE students SET age = age + 1 WHERE name = 'Tom'" # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit() ``` 5. 除数据 使用execute()方法执行SQL语句可以除数据,如下所示: ``` # SQL除语句 sql = "DELETE FROM students WHERE id = 1" # 执行SQL语句 cursor.execute(sql) # 提交到数据库执行 db.commit() ``` 以上就是PythonMySQL数据库进行的基本操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值