zoukankan      html  css  js  c++  java
  • python操作mysql封装成类

    import pymysql
    import logging
    import sys

    # 加入日志
    #获取logger实例
    logger = logging.getLogger("baseSpider")
    # 指定输出格式
    formatter = logging.Formatter('%(asctime)s
    %(levelname)-8s:%(message)s')
    # 文件日志
    file_handler = logging.FileHandler("baseSpider.log")
    file_handler.setFormatter(formatter)
    # 控制台日志
    console_handler = logging.StreamHandler(sys.stdout)
    console_handler.setFormatter(formatter)

    # 为logge添加具体的日志处理器
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)

    logger.setLevel(logging.INFO)

    class DBHelper:
    # 构造函数
    def __init__(self, host='127.0.0.1', user='root',
    pwd='123456', db='testdb'):
    self.host = host
    self.user = user
    self.pwd = pwd
    self.db = db
    self.conn = None
    self.cur = None


    # 连接数据库
    def connectDatabase(self):
    try:
    self.conn = pymysql.connect(self.host, self.user,
    self.pwd, self.db,charset='utf8')
    except:
    logger.error("connectDatabase failed")
    return False
    self.cur = self.conn.cursor()
    return True


    # 关闭数据库
    def close(self):
    # 如果数据打开,则关闭;否则没有操作
    if self.conn and self.cur:
    self.cur.close()
    self.conn.close()
    return True

    # 执行数据库的sq语句,主要用来做插入操作
    def execute(self, sql, params=None):
    # 连接数据库
    self.connectDatabase()
    try:
    if self.conn and self.cur:
    # 正常逻辑,执行sql,提交操作
    self.cur.execute(sql, params)
    self.conn.commit()
    except:
    logger.error("execute failed: "+sql)
    logger.error("params: "+params)
    self.close()
    return False
    return True

    # 用来查询表数据
    def fetchall(self, sql, params=None):
    self.execute(sql,params)
    return self.cur.fetchall()

    if __name__ == '__main__':
    dbhelper = DBHelper()
    # 创建数据库的表
    sql = "create table maoyan('id'varchar(8),
    'title'varchar(50),
    'star'varchar(200),
    'time'varchar(100),primary key('id'));"
    result = dbhelper.execute(sql,None)
    if result:
    logger.info("maoyan table创建成功")
    else:
    logger.error("maoyan table创建失败")

  • 相关阅读:
    【Java】String和Date、Timestamp之间的转换
    pl/sql改为汉语窗口的办法
    MySql生成随机数
    ETL概念
    oracle数据库中序列使用讲解
    oracle中的merge into用法解析
    mysql实现自动更新时间戳
    3.6:Linux touch命令:修改文件的时间戳
    3.5:Linux rmdir命令:删除空目录
    3.4:Linux mkdir命令:创建目录(文件夹)
  • 原文地址:https://www.cnblogs.com/zhaohuanhuan/p/9199303.html
Copyright © 2011-2022 走看看