# 把连接参数定义成字典 import constant from log_module.log import logger_mysql_debug from utils import middle_api_protocol config = constant.MYSQL_CONFIG class Mysqldb: # 初始化方法 def __init__(self): pass def __request(self, cmd, args): data = { "db": config["database"], "cmd": cmd, } if args: data["args"] = args fdata = middle_api_protocol.load_mysql_cmd(data) try: result = middle_api_protocol.request(fdata) return result except Exception as e: logger_mysql_debug.exception(e) # 查询sql语句返回的所有数据 def select_all(self, sql): return self.__request("select_all", [sql]) # 查询sql语句返回的一条数据 def select_one(self, sql): return self.__request("select_one", [sql]) # 查询sql语句返回的几条数据 def select_many(self, sql, num): return self.__request("select_many", [sql, num]) # 增删改除了SQL语句不一样其他都是一样的,都需要提交 def execute(self, sql, args=None): return self.__request("execute", [sql, args]) def execute_many(self, sql, args=None): return self.__request("execute_many", [sql, args]) # 当对象被销毁时,游标要关闭,连接也要关闭 # 创建时是先创建连接后创建游标,关闭时是先关闭游标后关闭连接 def __del__(self): pass if __name__ == '__main__': mysqldb = Mysqldb() # 插入单条数据 mysqldb.execute("insert into clients(account,pwd,rule) values(%s,%s,%s)", ("test", 123456, "\"123")) # 插入多条数据 mysqldb.execute_many("insert into clients(account,pwd,rule) values(%s,%s,%s)", [("test", 123456, "\"123"), ("test", 123456, "\"123")])