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

转载于:https://www.cnblogs.com/zhaohuanhuan/p/9199303.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值