前言今天笔者想和大家来聊聊Python接口自动化的MySQL数据连接,废话不多说咱们直接进入主题吧 。

文章插图
一、什么是 PyMySQL?PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2中则使用mysqldb 。它是一个遵循 Python数据库APIv2.0规范,并包含了pure-Python MySQL客户端的库 。
二、为什么需要连接数据库?在接口测试过程中,常常会有增删改查的操作,但是单从接口返回不能确保数据是否真的按照我们期望的结果来走,这时就需要查询数据库来核对,如注册接口,需要查询账号是否新建成功;接口修改数据,数据库的数据是否被更新到最新等等 。
三、安装cmd命令行执行pip install pymysql
四、操作数据库? 连接数据库之前,要先确保数据库已经建立 。操作数据库的步骤可以简单分为三步:
? 1. 连接数据库pymysql.connect(host, user, password, port, charset)
? 2. 创建游标对象cursor()
? 3. 执行sqlexecute(sql)
import pymysqlcon = pymysql.connect(host="192.168.100.101", # 连接数据库user="test",password="123456",port=3306,charset="utf8")cur = con.cursor() # 创建游标sql = "SELECT * FROM member WHERE username ='test'"res = cur.execute(sql)# 执行sql? 上面中提到一个概念:游标,实际上就是一种能从包括多条数据记录的结果集中每次提取一条记录的机制,就等于光标的上下移动,尽管游标能遍历结果中的所有行,但它一次只指向一行 。游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作,就像电脑的鼠标一样 。
文章插图
五、提取查询结果? fetchall:返回的是一个查询集(元祖的形式,查询到的每一条数据为这个元祖中的一个元素)
? fatchone:获取查询到的数据中的第一条
import pymysqlcon = pymysql.connect(host="127.0.0.1",user="test",password="123456",port=3306,charset="utf8")cur = con.cursor() # 创建游标sql = "SELECT mobile_phone FROM futureloan.member limit 4"res = cur.execute(sql)datas = cur.fetchall()print(datas)for i in datas:print(i)? 运行结果:【python接口自动化之MySQL数据连接】
C:softwarepythonpython.exe D:/learn/test.py(('13688703234',), ('15600403234',), ('15688113234',), ('13504071234',))('13688703234',)('15600403234',)('15688113234',)('13504071234',)Process finished with exit code 0? 特别注意:? 执行完增删改的sql语句之后,需要进行commit提交确认,这里commit的作用相当于数据库中的提交事务 。
封装? 凡是需要重复使用的,我们都可以对它进行二次封装,写成我们自己的版本,还可以在封装过程中加入我们想要的内容,使用的时候直接调用即可 。
import pymysqlfrom common.my_config import confclass HandleDB:def __init__(self):# 读取配置文件的数据库信息self.con = pymysql.connect(host=conf.get_str("mysql", "host"),user=conf.get_str("mysql", "user"),password=conf.get_str("mysql", "password"),port=conf.get_int("mysql", "port"),charset="utf8")self.cur = self.con.cursor()def get_one(self, sql):"""获取查询到的第一条数据"""self.con.commit()self.cur.execute(sql)return self.cur.fetchone()def get_all(self, sql):"""获取sql语句查询到的所有数据"""passdef count(self, sql):"""统计sql语句查询到的数据"""passdef close(self):self.cur.close()# 关闭游标对象self.con.close() # 断开连接总结今天的文章就到这里了哟,喜欢的小伙伴可以点赞收藏评论加关注哟,笔者每天都会分享不同的知识点哟,偶尔还会有一些小福利和小惊喜哟 。推荐阅读
- Python异步之aiohttp
- 用通俗易懂的多态世界观实例:理解python类的多态
- 一招教你搞定API接口防刷
- 身份证号码API 查询接口
- 告别加班!Python批量生成合同文档,解决合同重复制作问题
- 什么编程语言性能最好?C语言无悬念第一、Python垫底
- Python|职场中城府深的人都有这三个特点,越早知道越好!!!
- python端口遍历
- python爬虫之爬取疫情数据
- Spring Boot接口限制访问次数
