简道云结合mysql,能够实现更多的和更为强大的功能。
在mysql中对简道云一些关键表单做备份,一般访问mysql数据。提升运行速度。
规避简道云对API访问频率的限制。
前段时间,读懂并学会了简道云增删改查的类的运用。趁着国庆假日,又读懂学会了mysql增删改查的类的运用。会让API的书写变得非常简单,根据网上学习的内容,我又做了一些修改和完善,给大家分享。
import pymysql'''这个是调试比较完整的mysql操作语句,整体来说,比较容易明白,容易操作'''class MySQLUtil(): def __init__(self, host, username, password, port, datebase): self.host = host self.username = username self.password = password self.port = port self.datebase = datebase self.conn = None # 连接conn self.cursor = None # 游标 def conetion_db(self): # 创建连接 self.conn = pymysql.connect(host=self.host, user=self.username, password=self.password, port=self.port, db=self.datebase, charset='utf8') # 创建连接 def get_cursor(self): '''获取游标''' self.cursor = self.conn.cursor() return self.cursor def close_db(self): '''关闭连接''' self.cursor.close() self.conn.close() def create_table(self,sql): '''创建数据表''' try: self.conetion_db() self.get_cursor().execute(sql) self.conn.commit() self.close_db() except Exception as e: print(e) def insert(self, sql, *value): ''' 插入数据 :param table: :param insert data: :return: ''' #开启连接 self.conetion_db() n = self.get_cursor().execute(sql,*value) #关闭资源 self.conn.commit() self.close_db() return n def inser_many(self, sql, params): ''' 批量插入数据 :param sql: 插入数据模版, 需要指定列和可替换字符串个数 :param params: 插入所需数据,列表嵌套元组[(1, '张三', '男'),(2, '李四', '女'),] :return: 影响行数 ''' try: # sql = "INSERT INTO USER VALUES (%s,%s,%s)" # insert 模版 # params = [(2, 'fighter01', 'admin', 'sanpang'), # (3, 'fighter02', 'admin', 'sanpang')] # insert数据, self.conetion_db() self.get_cursor().executemany(sql,params) self.conn.commit() #提交请求,否则数据是不会写入数据库里 # 关闭数据库连接 except BaseException as f: print(f) self.conn.rollback() print(self.cursor.rowcount) return self.cursor.rowcount def select_one(self,sql,*value): ''' 查询一条数据 :param sql: :param value: :return: ''' self.conetion_db() cursor = self.get_cursor() cursor.execute(sql,*value) result = cursor.fetchone() self.close_db() return result def select_list(self,sql,*value): ''' 查询多条数据 :param sql: :param value: :return: ''' self.conetion_db() cursor = self.get_cursor() cursor.execute(sql,*value) result = cursor.fetchall() self.close_db() return result def update(self,sql,*value): ''' 修改 :param sql: :param value: :return: ''' self.conetion_db() n = self.get_cursor().execute(sql,*value) self.conn.commit() self.close_db() return n def delete(self,sql,*value): ''' 删除 :param sql: :param value: :return: ''' self.conetion_db() n = self.get_cursor().execute(sql,*value) self.conn.commit() self.close_db() return n #这里的n指的是数据条数if __name__ == "__main__": util = MySQLUtil(host='127.0.0.1', username='root', password='123456', port=3306, datebase='test') #插入操作 print('插入操作') sql = "INSERT INTO student VALUES (%s,%s,%s)" params = ('男', '2', '王五') util.insert(sql, params) #插入多条数据 print('插入多条数据') sql = "INSERT INTO student VALUES (%s,%s,%s)" params = [('男', '2', '王五'),('男', '2', '王三')] util.inser_many(sql, params) #更新操作 print('更新数据') sql="UPDATE student SET gender=%s, class_id=%s WHERE stu_name=%s" params=('女','5','王五') util.update(sql, params) #查询一条数据 print('查询一条数据') print(util.select_one("SELECT * FROM student WHERE class_id=%s",'5')) #查询多条数据 print('查询多条数据') print(util.select_list("SELECT * FROM student WHERE class_id=%s", '5')) #删除数据 print('删除数据') print(util.delete("DELETE FROM student WHERE stu_name=%s",('王五'))) #创建表 print('创建表') util.create_table('create table user (id varchar(20) primary key, name varchar(20))')
这是运行的结果