import pymysql
class Lv_Mysql(object):
# 初始化数据库操作类
def __init__(self,password,database):
self.host = 'localhost' # 设置mysql的host
self.port = 3306 # 设置mysql的port
self.user = 'root' # 设置mysql的user为root
self.password = password # 设置mysql的密码
self.database = database # 设置访问的数据库
def help(self):
print("__init__(password,database)")
print("----------------------------")
print("默认参数值:\nself.host = 'localhost' \nself.port = 3306 \nself.user = 'root'\n可自行参照修改")
print("\n############################\n")
print("do_save(self,data_dict)")
print("----------------------------")
print("data_dict={'table_name':table_name,'table_column':['column1','column2',...],'data_tuple':((xxx,xxx,...),(xxx,xxx,...))}")
print("\n############################\n")
print("do_select(self,data_dict)")
print("---------------------------")
print("data_dict={'sql':sql,'para_duct':(xxx,xxx,...)}")
# 连接数据库
def do_connect(self):
connection = pymysql.connect(host=self.host,port=self.port,user=self.user,password=self.password,database=self.database,charset='utf8')
return connection
# save方法
def do_save(self,data_dict):
# data_dict中含有三个数据
# {'table_name':table_name,'table_column':table_column,'data_tuple':data_tuple}
# 处理table_column
table_column_str = ''
for one_column in data_dict.get('table_column'):
table_column_str = table_column_str + '`' + one_column + '`,'
table_column_str = table_column_str[:-1]
# 连接数据库
connection = self.do_connect()
with connection:
with connection.cursor() as cursor:
# 构造 sql 语句
sql = "insert into `" + data_dict.get('table_name') + "`(" + table_column_str + ") VALUES (" + ("%s,"*len(data_dict.get('data_tuple')))[:-1] + ")"
# 存储数据
cursor.executemany(sql,data_dict.get('data_tuple')) # ((xx,xx,xx),(xx,xx,xx),...)
connection.commit()
# select 方法
def do_select(self,data_dict):
connection = self.do_connect()
with connection:
with connection.cursor() as cursor:
if data_dict.get('para_tuple') == None:
sql_result = cursor.execute(data_dict.get('sql')) # sql中没有参数
elif len(data_dict.get('para_tuple')) == 0:
sql_result = cursor.execute(data_dict.get('sql')) # sql中没有参数
else:
sql_result = cursor.execute(data_dict.get('sql'),data_dict.get('para_tuple')) # sql中带有参数
if sql_result != 0:
select_info = cursor.fetchall()
return select_info
else:
print("查询为空...")
return ()
pymysql再封装类
最新推荐文章于 2024-10-03 09:00:56 发布