自己封装的一个MySQL类

import pymysql
import logging


# 获取logger的实例
logger = logging.getLogger("lzjf")
# 指定logger的输出格式
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
# 文件日志,终端日志
file_handler = logging.FileHandler("lzjf.log")
file_handler.setFormatter(formatter)
# 设置默认的级别
logger.setLevel(logging.INFO)
# 把文件日志添加到日志处理器中
logger.addHandler(file_handler)


class DBHelper:
    def __init__(self,host="127.0.0.1",user="root",passwd='123456',db='testdb',port=3306,charset="utf8"):
        self.host=host
        self.user=user
        self.port=port
        self.passwd=passwd
        self.db=db
        self.charset=charset
        self.conn=None
        self.cur=None
    def connectDataBase(self):
        try:
            self.conn=pymysql.connect(host="127.0.0.1",user="root",password="123456",db="testdb",charset=self.charset)
        except:
            logger.error("connect  error")
        self.cur=self.conn.cursor()
        return True
    def createDate(self):
        '''
        创建数据库
        '''
        self.connectDataBase()
        sql="create database if not exists %s default character set = utf8;"%self.db
        try:
            self.cur.execute(sql)
        except:
            logger.error("create database error") 
            return False
        return True       
    def execute(self,sql,params=None):
        '''
        执行一般的语句
        '''
        if self.connectDataBase() == False:
            return False
        try:
            if self.conn and self.cur:
                #self.cur.execute("use %s;"%self.db)
                self.cur.execute(sql,params)
                self.conn.commit()
        except:
            logger.error("execute"+sql)
            logger.error("params",params)
            return False
        return True
    def close(self):
        if self.cur:
            self.cur.close()
        if self.conn:  
            self.conn.close()
        return True 
if __name__=="__main__":
    dbhelper=DBHelper()
    print(dbhelper.connectDataBase())
    #dbhelper.createDate()
    sql="create table maoyan(id varchar(11),title varchar(50),actor varchar(200),time varchar(100));"
    result=dbhelper.execute(sql,None)
    if result==True:
        print("创建表成功")
    else:
        print("创建表失败")    
    dbhelper.close()
    logger.removeHandler(file_handler)

猜你喜欢

转载自blog.csdn.net/weixin_41893060/article/details/80585964