最近在看“韩志超”博主的Python接口测试文档,根据博主写的Python连接数据库文章来操作,终于顺利连接上并查到自己想要的数据了。
import pymysql class DB: def __init__(self): # 获取连接方法 self.conn = pymysql.connect( host='xxx.xx.xx.x', port=3306, user='root', password='xxx123', db='mall_prize', charset='utf8') self.cur = self.conn.cursor() def __del__(self): # 析构函数,实例删除时触发 self.cur.close() self.conn.close() def query(self, sql): # 查询数据库 self.cur.execute(sql) return self.cur.fetchall() def exec(self, sql): try: self.cur.execute(sql) self.conn.commit() except Exception as e: self.conn.rollback() print(str(e)) # 封装常用数据库操作 def check_user(self, account_id): # 注意SQL中''号嵌套的问题 #result =self.query(f"select * from mall_activity_prize_log where activity_id = 332 and account_id = '{account_id}'" ) result = self.query(f"select account_id as 用户, count(*) as 抽奖次数 , activity_id 活动ID " f"from mall_activity_prize_log " f"group by account_id , activity_id having account_id = '{account_id}'") print(result) return result def del_user(self, account_id): # 删除抽奖纪录 self.exec(f"delete from mall_activity_prize_log where account_id = '{account_id}'") if __name__ == '__main__': db = DB() account_id = '1D6CC100-xxxx-xxxx-9F08-4FF336308371' # 输入用户id,查询用户的抽奖次数 db.check_user(account_id)
代码执行结果: