作者:cao.dingzheng [ZSK]
目前mysql数据库是应用较为广泛的数据库,毕竟是开源、免费的。而Python也有第三方库用于连接mysql进行操作,其中之一是MySQLdb,下方也是基于MySQLdb进行的方法封装,目前封装了连接数据库、插入数据和断开数据库的方法。连接数据库的完整流程应该分三步:连接数据库——>操作数据库(如建表、插入数据、修改数据等等)——>断开数据库连接,下面也是一个完整的流程,有了基本框架了。调用的时候首先需要对class进行实例化(如connect_database=Connect_database())后调用封装的方法,其中进行了参数私有化,Python私有化变量和参数是用两个下划线__来实现的。
from MySQLdb import * # 连接数据库 class Connect_database(object): # 连接数据库 def __init__(self, host, port, user, password, db, charset='utf8'): self.__host = host self.__port = port # mysql端口 self.__username = user # mysql远程连接用户名 self.__password = password # mysql远程连接密码 self.__db = db # mysql使用的数据库名 self.__charset = charset # mysql使用的字符编码,默认为utf8 try: self.__connect_database = connect(host=self.__host, port=self.__port, user=self.__username, password=self.__password, db=self.__db, charset=self.__charset) except: print('连接失败') # 插入数据 def insert_data(self, batch, name, call_time, status, tablename='cix_alg_routing_inspection', time_run=None, err_log=None): sql = "insert into " + tablename + "(model, call_time, status, time_run, err_log, batch) values('%s', '%s', '%s', '%s', '%s', %d)" % (name, call_time, status, time_run, err_log, batch) try: cur = self.__connect_database.cursor() cur.execute(sql) self.__connect_database.commit() cur.close() result = sql+'插入成功' except Exception as e: print('插入失败', e) result = sql+'插入失败' self.__connect_database.rollback() return result # 断开数据库连接 def close_database(self): self.__connect_database.close()