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创建失败")

  • 相关阅读:
    Android安全——加固原理
    Android安全–Dex文件格式详解
    我的第二个开源库SuperTextView——中文文档
    【解决方案】: hyper-v 导入虚拟机报这个错误 32784
    【经验】谈谈怎么找自己想要的资源吧~
    有吧友需要PDF的下载站点,好吧,我这边汇总一下
    lucene、lucene.NET详细使用与优化详解
    轻量级开源内存数据库SQLite性能测试
    SQLite介绍、学习笔记、性能测试
    十个 MongoDB 使用要点
  • 原文地址:https://www.cnblogs.com/zhaohuanhuan/p/9199303.html
Copyright © 2011-2022 走看看