def add_calendar(self, token, organizer, readonly, set_as_default, summary, color, description): """ 添加日历 :param token: access_token的值 :param organizer: 请求参数的值 :param readonly: 请求参数的值 :param set_as_default: 请求参数的值 :param summary: 请求参数的值 :param color: 请求参数的值 :param description: 请求参数的值 :return: 返回响应体 """ # Template模板需要二次改变的值 p_data = {"ip": self.ip, "token": token, "organizer": organizer, "readonly": readonly, "set_as_default": set_as_default, "summary": summary, "color": color, "description": description} res = self.send_api_data(self.yml_api_path, p_data, "add") try: cal_id = res["cal_id"] # 当cal_id获取到了,就把cal_id放到数据库中 sql.insert(f"insert into cal_id(userid,cal_id) values('{organizer}','{cal_id}')") except KeyError: log.error(f"响应不正确,无法插入数据") # 用yml文件保存数据的方法不要了 # try: # cal_id=res["cal_id"] # cal_id_list=self.load_yaml(self.cal_id_path) # cal_id_list.append(cal_id) # cal_id_list=list(filter(None,cal_id_list)) # self.save_yaml(self.cal_id_path,cal_id_list) # except: # log.info(f"无法获取到cal_id") return res
def delete(self, query): """ 运行mysql的delete语句 :param query: delete语句 """ log.info(f"delete语句为:{query}") try: # 定义游标,并通过execute执行delete语句 cur = self.conn.cursor() cur.execute(query) # delete执行成功后commit提交数据 cur.execute("commit") log.info("数据删除成功") except Exception as e: log.error(f"delete语句失败,原因:{e}") # delete失败后rollback回滚数据 cur.execute("rollback")
def insert(self, query): """ 运行mysql的select语句 :param query: insert语句 """ log.info(f"insert语句为:{query}") try: # 定义游标,并通过execute执行insert语句 cur = self.conn.cursor() cur.execute(query) # insert执行成功后commit提交数据 cur.execute("commit") log.info(f"数据插入成功") except Exception as e: log.error(f"insert 语句错误,原因是{e}") # insert失败后rollback回滚数据 cur.execute("rollback")
def select(self, query): """ 运行mysql的select语句 :param query: select语句 :return: select_data:返回全部的select语句的数据 """ log.info(f"select语句为:{query}") try: # 定义游标,并通过execute执行sql语句 cur = self.conn.cursor() cur.execute(query) # fetchall读取游标中的所有select数据 select_data = cur.fetchall() log.info("数据查询成功") # 返回select数据 return select_data except Exception as e: log.error(f"select语句错误,错误原因是:{e}")
def __init__(self): """ 初始化mysql的conn对家,连接数据库 """ # 通过配置文件获取数据库的host,port,username,password,charset,database host = cf.get_key("mysql", "host") # 从配置文件获取的值是str,需要转化成int port = int(cf.get_key("mysql", "port")) user = cf.get_key("mysql", "user") password = cf.get_key("mysql", "password") charset = cf.get_key("mysql", "charset") database = cf.get_key("mysql", "database") # 当无法连接数据库,走异常处理处理 try: self.conn = pymysql.connect(host=host, port=port, user=user, password=password, charset=charset, database=database) except Exception as e: log.error(f"无法登陆数据库,错误原因:{e}")
def add_schedule(self, token, organizer, start_time, end_time, userid, summary, description, location): """ 增加日程 :param token: access_token的值 :param organizer: 请求参数的值 :param start_time: 请求参数的值 :param end_time: 请求参数的值 :param userid: 请求参数的值 :param summary: 请求参数的值 :param description: 请求参数的值 :param location: 请求参数的值 :return: 返回响应体 """ # 时间传入时间戳,get_time可以将时间字符串转化成时间戳,自己封装的 start_time = self.get_time(start_time) end_time = self.get_time(end_time) # Template模板需要二次改变的值 p_data = { "ip": self.ip, "token": token, "organizer": organizer, "start_time": start_time, "end_time": end_time, "userid": userid, "summary": summary, "description": description, "location": location } res = self.send_api_data(self.data_path, p_data, "add") try: schedule_id = res["schedule_id"] # 当cal_id获取到了,就把schedule_id放到数据库中 sql.insert( f"insert into schedule_id(userid,schedule_id) values('{organizer}','{schedule_id}')" ) except KeyError as e: log.error("响应不正确,无法插入数据") return res
def test_get_token(self): a = Wework() log.error("test") print(a.get_token(self.secret))