# -*-coding:utf-8 -*- # # --------------------------------------------------------------------------- # ProjectName: test_58 # FileName: db.py # Author: xxxxxxx # Datetime: 2024/1/4 9:53 # Description: # # --------------------------------------------------------------------------- import pymysql from InterfaceAutoTest.common.read_ini import ReadIni from InterfaceAutoTest.data_config.settings import * class DB: def __init__(self): """链接数据库,获取链接对象,并创建游标对象""" # 创建ReadIni的对象,因为后面需要调用get_sql_connect_msg获取数据库的链接信息 read_ini = ReadIni() try: # 链接数据库, 获取链接对象 self.conn = pymysql.connect( host=read_ini.get_sql_connect_msg(SQL_HOST), port=int(read_ini.get_sql_connect_msg(SQL_PORT)), user=read_ini.get_sql_connect_msg(SQL_USER), password=read_ini.get_sql_connect_msg(SQL_PASSWORD), database=read_ini.get_sql_connect_msg(SQL_DATABASE), charset="utf8" ) except: raise ConnectionError("链接数据库出错,请查看配置文件是否配置正确") else: # 获取游标对象 self.cursor = self.conn.cursor() def close(self): """关闭数据的链接""" self.cursor.close() self.conn.close() def delete(self, sql_sentence): """执行删除的sql语句""" try: # 使用游标对象执行删除的sql语句 self.cursor.execute(sql_sentence) except: raise ValueError("请察看sql语句是否正确") else: # 使用链接对象提交 self.conn.commit() def select(self, sql_sentence): """执行查询的sql语句,并返回查询的结果,如果没有查询结果返回None""" try: # 使用游标对象执行查询的sql语句 self.cursor.execute(sql_sentence) except: raise ValueError("请察看sql语句是否正确") else: # 接收查询的结果 select_result = self.cursor.fetchall() # 判断查询的结果是否为空的元组,如果是返回None,如果不是返回查询的第一个值 if select_result: return select_result[0][0]