上下文管理器

#!/usr/bin/python3
# coding:utf8

import pymysql

class Database():

def __init__(self):
self.conn = pymysql.Connect(
host='127.0.0.1',
port=3306,
user='root', #使用自己的用户名
passwd='123', # 使用自己的密码
db='马继', # 数据库名
charset='utf8'
)

def __enter__(self,):
return self.conn.cursor(cursor=DictCursor)

def __exit__(self, exc_type, exc_val, exc_tb):
if exc_type:
self.conn.rollback()
else:
self.conn.commit()
return True
def close(self):
self.conn.close()

# 数据库存储

class Base():
def __init__(self):
self.db = Database()

def save(self,table_name,**item):
sql = 'insert into %s(%s) values(%s)'
fields = ''.join(item.keys())
fields_placeholds = ''.join(['%%(%s)s' % key for key in item])
with self.db as cursor:
cursor.execute(sql % (table_name,fields,fields_placeholds),
item)
# 判断是否执行成功
# rowcount影响的行数
if cursor.rowcount>0:
return True
return False
posted @ 2022-03-03 10:17  mjth  阅读(41)  评论(0)    收藏  举报