首页 > 数据库 >python 测试框架中的数据库连接类(mysql示例)

python 测试框架中的数据库连接类(mysql示例)

时间:2023-08-08 22:12:16浏览次数:62  
标签:__ 示例 python self db yaml str mysql conn

 

1.数据库信息yaml文件 conf_env.yaml

host:
doname: demo.pab.com.cn
port : 80

database:
host: "db.fat.qa.pab.com.cn"
user: "deploy"
password: "thess"
dbname: "testdb"
charset: "utf8"

2.与数据库yaml文件同级目录,创建配置config.py,内容如下
import os

project_dir = os.path.split(os.path.abspath(__file__))[0]

3.创建db_service.py, 内容如下

from cfg_service import get_db_connect_msg
import pymysql
import logging
logging.basicConfig(level=logging.DEBUG)

class dbService(object):
def __init__(self):
self.conn = self.connect()

#conn_str={'database': {'host': 'db.fat.qa.pab.com.cn', 'user': 'deploy', 'password': 'thess', 'dbname': 'testdb','charset': 'utf8'}}\
def connect(self, isyaml: bool = True, conn_str: dict = None):
if isyaml:
conn_str = get_db_connect_msg()
else:
conn_str = conn_str
try:
cursor = pymysql.connect(host=conn_str['database']['host'],
user=conn_str['database']['user'],
password=conn_str['database']['password'],
database=conn_str['database']['dbname'],
charset=conn_str['database']['charset']).cursor()
return cursor
except Exception as e:
raise e

def select(self, sql_str):
self.conn.execute(sql_str)
return self.conn.fetchall()

def __del__(self):
self.conn.close()


2.创建cfg_service.py,内容如下
import config
import os
import yaml

def get_db_connect_msg():
env_conf = os.path.join(config.project_dir, "conf_env.yml")
conn_str = ''
if os.path.exists(env_conf):
with open(env_conf, "r") as file:
yaml_cont = file.read()
conn_str = yaml.load(yaml_cont, Loader=yaml.FullLoader)
else:
raise FileNotFoundError

return conn_str


if __name__ == '__main__':
print(get_db_connect_msg())


 

标签:__,示例,python,self,db,yaml,str,mysql,conn
From: https://www.cnblogs.com/yinzone/p/17615523.html

相关文章

  • python计算一个整数列表中所有元素的平均值
    defcalculate_average(numbers):  total=sum(numbers)  average=total/len(numbers)  returnaverage#示例输入number_list=[1,2,3,4,5]#调用函数并打印结果average_value=calculate_average(number_list)print("平均值为:",average_value)......
  • python计算一个整数列表中所有元素的平均值
    defcalculate_average(numbers):  total=sum(numbers)  average=total/len(numbers)  returnaverage#示例输入number_list=[1,2,3,4,5]#调用函数并打印结果average_value=calculate_average(number_list)print("平均值为:",average_value)......
  • python入门
    环境搭建:官网下载,pycharm编译器用于开发          Jupyter沙箱 变量:定义变量,变量名=变量  标识符(变量名)命名规则:变量名中,只能由数字字母划线三类组成,   不能以数字开头。不能使用内置关键字(函数名,定义函数的DEF)。  严格区分大小写(小写大写......
  • Python基础day62 DjangoAjax的传输应用
    前后端数据传输的编码格式(contentType)前后端数据传输的请求方式有两种:get、post我们只研究post请求的编码格式三种编码格式urlencodedform-datajson发送post请求的方式form表单Ajaxpostman(第三方工具,需要下载) form表单发送post请求的时候数据的编码格式请求头conten......
  • opencv-python特征检测
    本章节介绍Harris角点检测,SIFT关键点检测,shi-Tomasi角点检测,SURF特征检测,ORB特征检测。特征检测是提取图像信息,决定每个图像的点是否属于一个图像特征。其结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点,连续的曲线或连续的区域。特征检测包括边缘检测,角检测,区域检测......
  • MySQL实战面试题
    createdatabasehufei;usehufei;createtableuser_info(idint,device_idint(10),gendervarchar(14),ageint,universityvarchar(32),provincevarchar(32),gpafloat);insertintouser_infovalues(1,2138,'male',21,'北京大学','Beijing&#......
  • python实现pdf转word
    frompdf2docximportConverterimportPySimpleGUIassgdefpdf2word(file_path):file_name=file_path.split('.')[0]doc_file=f'{file_name}.docx'p2w=Converter(file_path)p2w.convert(doc_file,start=0,end=None)......
  • 【Azure K8S | AKS】在AKS中创建 StatefulSet 示例
    问题描述【AzureK8S|AKS】在AKS集群中创建PVC(PersistentVolumeClaim)和PV(PersistentVolume)示例【AzureK8S|AKS】进入AKS的POD中查看文件,例如PVCVolumeMounts使用情况【AzureK8S|AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小基于前三篇博文中使用的......
  • pycharm 连接mysql
       ......
  • Python 装饰器
    装饰器的基本语法装饰器本质上就是“定义一个闭包并用语法糖@简练地调用该闭包”,从而实现把一个方法对象当做参数,传入到另一个方法中,然后返回一个增强功能的新方法对象。在Python中允许在一个方法中嵌套另一个方法,这种特殊的机制就叫做「闭包」,这个内部方法可以保留外部方法......