一.pymysql简单使用

1.安装mysql

下载地址:https://www.mysql.com/,安装教程这里不做介绍了,网上一大推。

2.安装pymysql库

在Terminal终端输入:pip install pymysql

3.pymysql操作数据库

1)导入pymysql库,创建数据库连接

  1. conn = pymysql.connect(host="127.0.0.1", # 本地服务ip
    user="root", # 用户名
    password="root", # 密码
    database="pymysql", # 库
    port=3306, # 端口号
    autocommit=False, # 是否自动提交
    charset="utf8") # 设置utf编码

2)创建游标

execute()执行sql语句

  1. cur = conn.cursor() # 创建游标
  2. sql = "create table student(id int(10),name varchar(10))"
  3. cur.execute(sql) # 执行sql,执行后返回的是影响的条数

创建游标执行sql语句后fetchall()默认返回元组类型的数据,我们要想让其返回dict类型的,可加入相应参数

  1. cur = conn.cursor(pymysql.cursors.DictCursor)

executemany()执行sql语句

  1. a_list = [(1, "李明"), (2, "李祥")]
  2. sql = "insert into student (id,name ) values (%s,%s)" # %s占位符,通用的
  3. cur_list = cur.executemany(sql, a_list) # 批量执行sql

executemany(self, query, args):为执行批量语句时使用的,query为执行的sql语句,args为传入的数据,列表中嵌套元组类型。

execute()也可批量执行语句,只是执行效率没executemany()快,因此执行单条语句时推荐使用execte(),批量时推荐使用exectemany()。

3)返回查询数据的操作

cur.fetchone() : 返回查询第一条的结果集

cur.fetchall() : 返回所有的查询结果集,元组类型

cur.fetchmany():  默认返回第一条结果集,可手动在括号中填写返回条数

cur.rowcount:返回影响的条数。注意这里是属性,不是方法

4)commit的使用

我们在操作数据库时,进行增删改后需求提交,否则的话数据库对应的数据是不会发生变化的

  1. conn.commit()

若的创建数据库连接的时候autocommit设置为True,自动提交后。此步骤可省略

5)执行完毕后,关闭游标和数据库连接

  1. cur.close()
  2. conn.close()

  

二.数据驱动

1)我们以获取企业微信token为例,首先先从数据库获取相应的数据

  1. def pymysql_01():
  2. # 创建数据库连接
  3. conn = pymysql.connect(host="127.0.0.1", # 本地服务ip
  4. user="root", # 用户名
  5. password="root", # 密码
  6. database="li", # 库
  7. port=3306, # 端口号
  8. autocommit=False, # 是否自动提交
  9. charset="utf8") # 设置utf编码
  10. cur = conn.cursor(pymysql.cursors.DictCursor) # 创建游标 pymysql.cursors.DictCursor为查询时返回dict类型
  11. sql = "select * from pymysql"
  12. cur.execute(sql)
  13. list_id = []
  14. for i in cur.fetchall():
  15. list_id.append(i)
  16. cur.close()
  17. conn.close()
  18. return list_id

2)@pytest.mark.parametrize()实现数据驱动

  1. @pytest.mark.parametrize("param", pymysql_01())
  2. def test_weixin(param):
  3. url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
  4. data = requests.get(url, params=param)
  5. assert data.json()["errcode"] == 0

3)运行结果当然也是完美的

  

  1. 文章来源:https://www.cnblogs.com/lihongtaoya/ ,请勿转载

python+request+pymysql+pytest数据驱动的更多相关文章

  1. python+request接口自动化框架

    python+request接口自动化框架搭建 1.数据准备2.用python获取Excel文件中测试用例数据3.通过requests测试接口4.根据接口返回的code值和Excel对比 但本章只讲整 ...

  2. python+request+robot framework接口自动化测试

    python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...

  3. python之pymysql模块学习(待完善...)

    pymysql介绍 pymysql是在python3.x版本中用于连接mysql服务器的一个库.python2中则使用mysqldb. 安装方法: pip install pymysql 使用实例: ...

  4. python request

    python request a. 客户端向服务端发送多层字典的值 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 obj =  ...

  5. python的pymysql模块简介

    一.介绍 在python中用pymysql模块来对mysql进行操作,该模块本质就是一个套接字客户端软件,使用前需要事先安装 pip3 install pymysql 二.操作简介 import py ...

  6. python中pymysql使用

    python中pymysql使用 https://blog.csdn.net/johline/article/details/69549131 import pymysql # 连接数据库 conne ...

  7. python request接口测试笔记(1)

    python request接口测试笔记(1) 涉及到的功能说明: 需要登录拿到token,才能进行下一个接口的请求 读取csv文件中的信息,作为接口的参数 将接口响应结果,写入csv文件,以便分析统 ...

  8. Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

    Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: ...

  9. Python进阶----pymysql模块的使用,单表查询

    Python进阶----pymysql模块的使用,单表查询 一丶使用pymysql ​   ​   1.下载pymysql包: pip3 install pymysql ​​   ​   2.编写代码 ...

随机推荐

  1. 【RocketMQ】消息的消费

    上一讲[RocketMQ]消息的拉取 消息消费 当RocketMQ进行消息消费的时候,是通过ConsumeMessageConcurrentlyService的submitConsumeRequest ...

  2. angular里forwardRef的原理

    一段会报错的angular代码 @Injectable() class Socket { constructor(private buffer: Buffer) { } } console.log(B ...

  3. 分析 java.util.LinkedHashMap

    介绍 该实现与HashMap不同的是它维护一个双向链表,可以使HashMap有序.与HashMap一样,该类不安全. 结构 和HashMap的结构非常相似,只不过LinkedHashMap是一个双向链 ...

  4. 论文翻译:2020_Lightweight Online Noise Reduction on Embedded Devices using Hierarchical Recurrent Neural Networks

    论文地址:基于分层递归神经网络的嵌入式设备轻量化在线降噪 引用格式:Schröter H, Rosenkranz T, Zobel P, et al. Lightweight Online Noise ...

  5. Word 文字错乱,接收方显示的字体与原版不一直

    原版文档使用字体的不是电脑上自带的常规字体,比如,黑软雅黑.黑体.宋体等字体.当把文档发送给其他人查阅时,字体发生了错乱,也就是字体与原版字体不一致. 需要打开"选项"设置,把非常 ...

  6. [HDU6057] Kanade‘s convolution (FWT)

    题面 出自HDU6057 给你两个数列 A [ 0... 2 m − 1 ] A[0...2^m-1] A[0...2m−1] 和 B [ 0... 2 m − 1 ] B[0...2^m-1] B[ ...

  7. django_day02

    django_day02 外键 表示一对多 多对一 class Book(models.Model): name = models.CharField(max_length=32) publisher ...

  8. 面试~jvm(JVM内存结构、类加载、双亲委派机制、对象分配,了解垃圾回收)

    一.JVM内存结构 ▷ 谈及内存结构各个部分的数据交互过程:还可以再谈及生命周期.数据共享:是否GC.是否OOM 答:jvm 内存结构包括程序计数器.虚拟机栈.本地方法栈.堆.方法区:它是字节码运行时 ...

  9. python 数据挖掘模块学习

    项目中用到的模块 API # 模块: import pandas as pd import numpy as np from scipy.optimize import curve_fit numpy ...

  10. 聊聊两个Go即将过时的GC优化策略

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 这篇文章本来是要讲 Go Memory Ballast 以及 Go GC Tuner 来 ...