一.pymysql简单使用1.安装mysql下载地址:https://www.mysql.com/,安装教程这里不做介绍了,网上一大推 。
2.安装pymysql库在Terminal终端输入:pip install pymysql
3.pymysql操作数据库1)导入pymysql库,创建数据库连接
conn = pymysql.connect(host="127.0.0.1",# 本地服务ipuser="root",# 用户名password="root",# 密码database="pymysql",# 库port=3306,# 端口号autocommit=False,# 是否自动提交charset="utf8")# 设置utf编码2)创建游标
execute()执行sql语句
cur = conn.cursor()# 创建游标sql = "create table student(id int(10),name varchar(10))"cur.execute(sql)# 执行sql,执行后返回的是影响的条数创建游标执行sql语句后fetchall()默认返回元组类型的数据,我们要想让其返回dict类型的,可加入相应参数
cur = conn.cursor(pymysql.cursors.DictCursor)executemany()执行sql语句
a_list = [(1, "李明"), (2, "李祥")]sql = "insert into student (id,name ) values (%s,%s)"# %s占位符,通用的cur_list = cur.executemany(sql, a_list)# 批量执行sqlexecutemany(self, query, args):为执行批量语句时使用的,query为执行的sql语句,args为传入的数据,列表中嵌套元组类型 。
execute()也可批量执行语句,只是执行效率没executemany()快,因此执行单条语句时推荐使用execte(),批量时推荐使用exectemany() 。
3)返回查询数据的操作
cur.fetchone() : 返回查询第一条的结果集
cur.fetchall() : 返回所有的查询结果集,元组类型
cur.fetchmany(): 默认返回第一条结果集,可手动在括号中填写返回条数
cur.rowcount:返回影响的条数 。注意这里是属性,不是方法
4)commit的使用
我们在操作数据库时,进行增删改后需求提交,否则的话数据库对应的数据是不会发生变化的
conn.commit()若的创建数据库连接的时候autocommit设置为True,自动提交后 。此步骤可省略
5)执行完毕后,关闭游标和数据库连接
cur.close()conn.close()
二.数据驱动1)我们以获取企业微信token为例,首先先从数据库获取相应的数据
文章插图
def pymysql_01():# 创建数据库连接conn = pymysql.connect(host="127.0.0.1",# 本地服务ipuser="root",# 用户名password="root",# 密码database="li",# 库port=3306,# 端口号autocommit=False,# 是否自动提交charset="utf8")# 设置utf编码cur = conn.cursor(pymysql.cursors.DictCursor)# 创建游标 pymysql.cursors.DictCursor为查询时返回dict类型sql = "select * from pymysql"cur.execute(sql)list_id = []for i in cur.fetchall():list_id.append(i)cur.close()conn.close()return list_id2)@pytest.mark.parametrize()实现数据驱动
@pytest.mark.parametrize("param", pymysql_01())def test_weixin(param):url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"data = https://www.huyubaike.com/biancheng/requests.get(url, params=param)assert data.json()["errcode"] == 03)运行结果当然也是完美的
文章插图
文章来源:https://www.cnblogs.com/lihongtaoya/ ,请勿转载【python+request+pymysql+pytest数据驱动】