mysql数据库连接:返回list和dict格式
import pymysql from api.conf.setting import mysql_info class HandleDb: def __init__(self): # 连接数据库 self.conn = pymysql.connect(host=mysql_info["host"], # mysql服务器ip或者域名 user=mysql_info["user"], # 用户名 password=mysql_info["password"], # 密码 db=mysql_info["db"], # 连接的数据库名 autocommit=True, # 自动提交连接对象 port=3306, # 数据库端口号 charset='utf8', # 数据库编码为utf8,不能写为utf-8 # 默认返回的结果为元祖或者嵌套元祖的列表 # 可以指定cursorclass为DictCursor,那么返回的结果为字典或者嵌套字典的列表 cursorclass=pymysql.cursors.DictCursor ) # 2、创建游标对象 self.cursor = self.conn.cursor() # 查询结果value的值将其生成列表 def get_data(self, sql): value_list = [] # 3、使用游标对象执行sql语句 self.cursor.execute(sql) # 4、使用fetchall获取所有结果,返回的是嵌套字典的字典 result = self.cursor.fetchall() # self.cursor.fetchone() for key in result: for val in key.values(): value_list.append(val) return value_list def get_data_dict(self, sql): # 3、使用游标对象执行sql语句 self.cursor.execute(sql) # 4、使用fetchall获取所有结果,返回的是嵌套字典的字典 result = self.cursor.fetchall() return result # 6、一定要关闭游标和连接 # 先关闭游标对象,然后关闭连接对象 def db_close(self): # 关闭游标 self.cursor.close() # 关闭连接 self.conn.close() # 实例化用于关闭数据库连接 mysql = HandleDb() if __name__ == '__main__': cl = HandleDb() # sql = "select * from tz_attach_file where file_path ='2024/03/c2876474841b479dab280a9b1cfc63a2.png'" sql = "select mobile_code from tz_sms_log where user_phone = '18711277355' order by id desc limit 1" print(cl.get_data_dict(sql), type(cl.get_data_dict(sql))) cl.db_close()