1. MySQL
下载:pip install mysqlclient 或 pip install pymysql
使用:import MySQLdb 或 import pymysql
2. 连接增删查改
3. 操作类封装
from contextlib import contextmanagerimport pymysqlimport timeclass MySQLDB:"""MySQL操作类,对MySQL数据库进行增删改查"""def __init__(self, config):"""连接到数据库(保存连接信息,并连接)"""self._config = configself.conn = pymysql.connect(**self._config)self.print_id()def __del__(self):"""关闭数据库连接"""self.conn.close()@contextmanagerdef ensureConn(self):"""检查数据库是否需要重连,并在需要时重连"""try:self.conn.ping(reconnect=True)except BaseException:self.conn = pymysql.connect(**self._config)yielddef print_id(self):"""打印mysql连接id"""with self.ensureConn():cursor = self.conn.cursor()cursor.execute("select connection_id();")res = cursor.fetchone()print("MySQLDB - mysql id: ",res)return resdef excute_sql(self, sql):start = time.time()self.print_id()print("[excute_sql] start : ", sql)with self.ensureConn():cursor = self.conn.cursor()cursor.execute(sql)data = cursor.fetchall()fields = cursor.descriptioncolumn_list = []for i in fields:column_list.append(i[0])# print(column_list)result = []for row in data:result.append(list(row))# print(row)all_time = time.time() - startprint("[excute_sql] finish - Use time : ", all_time)return result# 读权限test_config = {"host": '',"user": '',"passwd": '',"db": '',"port": ,"cursorclass": pymysql.cursors.DictCursor}Loginfo = {'user':'', 'password':'', 'host':', 'port':}# 持久连接luna_db_user = MySQLDB(Loginfo)
