存放数据库设置
建立包config--settings.py 数据库连接信息和工具类分离的方式方便后续更改数据库信息,而不需要改动下面工具类
# 数据库信息配置
DB_CONFIG = {
"host": "127.0.0.1",
"user": "root",
"password": "123456",
"database": "test",
"port": 3306,
"charset": "utf8"
}
封装方法让Python可以操作数据库
项目包-utils 下建立模块 mysqlutil.py
# 导入PyMySQL库
import pymysql
# 导入数据库的配置信息
from config.settings import DB_CONFIG
class MysqlUtil:
def __init__(self):
# 读取配置文件,初始化pymysql数据库连接
self.db = pymysql.connect(**DB_CONFIG)
# 创建数据库游标 返回字典类型的数据
self.cursor = self.db.cursor(cursor=pymysql.cursors.DictCursor)
# 获取单条数据
def get_fetchone(self, sql):
self.cursor.execute(sql)
return self.cursor.fetchone()
# 获取多条数据
def get_fetchall(self, sql):
self.cursor.execute(sql)
return self.cursor.fetchall()
# 执行更新类sql
def sql_execute(self, sql):
try:
# db对象和指针对象同时存在
if self.db and self.cursor:
print("sql是", sql)
self.cursor.execute(sql)
# 提交执行sql到数据库,完成insert或者update相关命令操作,非查询时使用
self.db.commit()
print("sql执行成功~!")
except Exception as e:
# 出现异常时,数据库回滚
self.db.rollback()
return False
# 关闭对象,staticmethod静态方法,可以直接使用类名.静态方法
@staticmethod
def close(self):
# 关闭游标对象
if self.cursor is not None:
self.cursor.close()
# 关闭数据库对象
if self.db is not None:
self.db.close()
if __name__ == '__main__':
mysql = MysqlUtil()
res1 = mysql.get_fetchone("select * from case_list")
print(res1)
res2 = mysql.get_fetchall("select * from case_list")
print(res2)
res3 = mysql.sql_execute("insert into test_result_record (case_id,result) values ('9999','测试通过');")
print(res3)