zoukankan      html  css  js  c++  java
  • Python

    接口测试什么情况下操作数据库?

    1. 比如说注册接口,同一个账号不能重复注册
    2. 流程性的操作,比如登录 - 新建学校 - 禁用学校,那么可以插入一个学校,然后再进行禁用操作
    3. 数据清理,测试完成后清理垃圾数据
    4. 修改状态,比如执行禁用动作的时候,state = 6,启用的时候state = 2,测试不同状态的时候,需要还原数据


    概述

    主要讲解如何使用pymysql库进行MySQL的管理操作,
    以及如何使用pymysql实现增删改查动作。

    安装pymysql

    pip install PyMySQL
    

    常用对象及API

    在 pymysql 中提供了 Connection 和 Cursor 对象来管理操作MySQL。

    常用对象

    Connection

    代表一个与MySQL Server的socket连接,使用connect方法来创建一个连接实例。

    Cursor
    代表一个与MySQL数据库交互对象,使用Connection.Cursor()在当前socket连接上的交互对象。



    常用API

    Connection对象常用的API:
    
    connect()   创建一个数据库连接实例  
    begin()     开始一个事务  
    close()     发送一个退出消息,并关闭连接  
    commit()    提交修改至数据库  
    cursor()    创建一个cursor(游标)实例  
    ping()      检测服务器是否在运行  
    rollback()  回滚当前事务  
    select_db(db)   设置当前db  
    show_warnings() 显示警告信息
    
    
    Cursor对象常用API:
    
    close()     关闭当前cursor
    execute()   执行一个sql语句
    executemany()   执行批量sql语句
    fetchall()      取所有数据
    fetchone()      取一条数据
    


    栗子:

    # -*- coding:utf-8 -*-
    
    import pymysql
    conn = pymysql.connect(
        # mysql 服务器 ip 地址
        host='192.168.28.128',
        # mysql 服务端口
        port=3306,
        # 访问 mysql 的用户名
        user='root',
        # 访问 mysql 的密码
        password='123123',
        # 默认连接到的数据库
        db='recruit_students'
    )
    # 使用 cursor 方法获取操作游标
    cursor = conn.cursor()
    sql = 'SELECT * FROM t_school_info'
    # 使用 execute 方法执行sql查询
    cursor.execute(sql)
    data = cursor.fetchall()
    print(data)
    
    


    MySQL_utils数据库工具类封装

    import pymysql
    from warnings import filterwarnings
    
    # 忽略Mysql告警信息
    filterwarnings("ignore", category=pymysql.Warning)
    
    
    class MysqlDb:
        def __init__(self):
            # 建立数据库连接
            self.conn = pymysql.connect(
                # mysql 服务器 ip 地址
                host='192.168.28.128',
                # mysql 服务端口
                port=3306,
                # 访问 mysql 的用户名
                user='root',
                # 访问 mysql 的密码
                password='123123',
                # 默认连接到的数据库
                db='recruit_students'
            )
            self.cur = self.conn.cursor()
    
        def __del__(self):
            # 关闭游标
            self.cur.close()
            # 关闭连接
            self.conn.close()
    
        def query(self, sql, state="all"):
            """
            查询
            :param sql:
            :param state: all是默认查询全部
            :return:
            """
            self.cur.execute(sql)
    
            if state == "all":
                # 查询全部
                data = self.cur.fetchall()
            else:
                # 查询单条
                data = self.cur.fetchone()
            return data
    
        def execute(self, sql):
            """
            更新、删除、新增
            :param sql:
            :return:
            """
            try:
                # 使用execute操作sql
                rows = self.cur.execute(sql)
                # 提交事务
                self.conn.commit()
                return rows
            except Exception as e:
                print("数据库操作异常 {0}".format(e))
                self.conn.rollback()
    
    
    if __name__ == '__main__':
        mydb = MysqlDb()
        data = mydb.query('SELECT * FROM t_school_info')
        print(data)
    


    ------分界线------

    不要过早地追求所谓的工作和生活的平衡,

    所有事业有成的人,

    在该拼的时候一定是牺牲了生活的!

  • 相关阅读:
    java基础循环、条件语句、switch case
    java基础抽象类、接口、枚举、包
    java基础基本数据类型、变量类型、修饰符、运算符
    Mac权限问题,operation not permitted
    【比赛游记】NOIP2021 游记
    【比赛题解】NOIP2021 题解
    把LeetCode上的Sql题刷完了会有什么收获
    分析函数之Lead()、Lag()
    QT相关(c++)
    grpc
  • 原文地址:https://www.cnblogs.com/wwho/p/14487473.html
Copyright © 2011-2022 走看看