pymysql数据库校验

一、数据库校验

1. python操作数据库

1.pymysql

PyMSQL是一个纯的python的MySQL客户端。

pip install PyMySQL

使用步骤

  1. 创建连接(修高速公路)
  2. 创建游标(运输车)
  3. 执行sql(提货单)
  4. 获取结果(卸货)
  5. 关闭游标(车退掉)
  6. 关闭连接(路也断掉)
import pymysql
from pymysql.cursors import DictCursor
# 1.创建连接(修高速公路)
conn = pymysql.connect(
    host='api.lemonban.com',
    user='future',
    password='123456',
    port=3306,
    db='futureloan',
    charset='utf8'
)
# 2. 创建游标(运输车)
# cursor = conn.cursor()  # 返回元组
cursor = conn.cursor(DictCursor)  # 返回字典
# 3. 执行sql(提货单)
sql = 'select id, reg_name, mobile_phone from member limit 10'
res = cursor.execute(sql)
print(res)
# 4. 获取结果(卸货)
res1 = cursor.fetchone() # 一次卸载一条
res2 = cursor.fetchmany(3) # 一次卸载指定的条数
res3 = cursor.fetchall() # 一次获取所有
# 5. 关闭游标(车退掉)
cursor.close()
# 6. 关闭连接(路也断掉)
conn.close()
10
res1
{'id': 1, 'reg_name': '檬檬', 'mobile_phone': '13453457687'}
res2
[{'id': 2, 'reg_name': '青柠檬', 'mobile_phone': '13622120322'},
 {'id': 3, 'reg_name': '小傻瓜', 'mobile_phone': '15500000000'},
 {'id': 4, 'reg_name': '测试开发小可爱', 'mobile_phone': '15088314689'}]
res3
[{'id': 5, 'reg_name': '小傻瓜', 'mobile_phone': '13574660252'},
 {'id': 6, 'reg_name': '小傻瓜', 'mobile_phone': '18717906533'},
 {'id': 7, 'reg_name': '圆圆', 'mobile_phone': '18235075293'},
 {'id': 8, 'reg_name': '小傻瓜', 'mobile_phone': '15209028515'},
 {'id': 9, 'reg_name': '小傻瓜', 'mobile_phone': '13800001001'},
 {'id': 10, 'reg_name': '小傻瓜', 'mobile_phone': '15100002222'}]

更新数据

import pymysql
db_config = {
    'host': 'api.lemonban.com',
    'user': 'future',
    'password': '123456',
    'port': 3306,
    'db': 'futureloan',
    'charset': 'utf8'
}
conn = pymysql.connect(**db_config)
try:
    with conn.cursor() as cursor:
        sql1 = 'UPDATE account set amount=amount - 100 where username="A"'
        sql2 = 'UPDATE account set amount=amount + 100 where username="B"'
        cursor.execute(sql1)
        cursor.execute(sql2)
        # pymysql默认开启事务
        conn.commit()
except Exception as e:
    # 回滚
    conn.rollback()
finally:
    conn.close()

2. 数据查询类封装

1. 功能分析

  1. 可以连接不同sql数据库
  2. 查一条数据,多条数据
  3. 可以获取不同格式的数据

2. 封装成数据库查询类

封装思路:

  1. 数据库查询模块有多个功能,且需要复用,所以封装成类
  2. 在构造方法中创建连接
  3. 创建对象方法实现各种查询

3. 应用到项目中

3.1 数据库配置

DB_CONFIG = {
        'engine': 'mysql',  # 指定mysql数据
        'host': 'api.lemonban.com',
        'user': 'future',
        'password': '123456',
        'port': 3306,
        'db': 'futureloan',
        'charset': 'utf8'
    }

3.2 导入

在一个项目中会查询多次数据库,如果每次都要实例化一个数据库查询对象,也即是,每次都要重新连接,显然是比较浪费资源。当前这种场景下需要用到单例模式,也即是在一个脚本的生命周期内,某个类的实例始终只有一个。

因为python的模块就是填入的单例模式,所有的模块有且只会被导入一次。

3.3 修改用例数据

在用例中添加一个sql字段,里面编写需要校验的sql语句

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容