当前位置: 首页 > news >正文

软件测试/测试开发丨Python 常用第三方库 pymysql

pymysql 概述

  • Python 的数据库接口标准是 Python DB-API
  • PyMySQL 是从 Python 连接到 MySQL 数据库服务器的接口
  • PyMySQL 的目标是成为 MySQLdb 的替代品
  • 官方文档:pymysql.readthedocs.io/

pymysql 安装

  • 使用 pip 安装
  • 使用 Pycharm 界面安装
pip install pymysql

pymysql 连接数据库

  • host:MySQL 服务器地址
  • user:用户名
  • password:密码
  • database:数据库名称
  • charset:编码方式,推荐使用 utf8mb4
# 1.导入库
import pymysql# 2.建立连接
conn = pymysql.connect(host='服务器地址',user='用户名',password='密码',database='数据库名',charset="utf8mb4")
# 3.关闭连接
conn.close()

pymysql 连接数据库

  • 封装获取连接的函数
import pymysql# 1.封装建立连接的对象
def get_conn():conn = pymysql.connect(host="服务器地址",user="root",password="123456",database="数据库名",charset="utf8mb4")return conn

pymysql 入门实例

  • 获取连接对象

    • 打开

    • 关闭

  • 获取游标对象

    • 执行 SQL

    • 查询记录

from . import get_conndef test_demo():# 1.获取连接对象conn = get_conn()# 2.获取游标对象cursor = conn.cursor()# 3.执行SQLcursor.execute("SELECT VERSION()")# 4.查询结果version = cursor.fetchone()print(f"数据库的版本是:{version}")# 5.关闭连接conn.close()

pymysql 创建表

  • 创建表 testcase
from . import get_conndef test_create():conn = get_conn()  # 获取连接cursor = conn.cursor()  # 获取游标sql = """CREATE TABLE `testcase` (`id` int(11) NOT NULL AUTO_INCREMENT,`title` varchar(255) COLLATE utf8_bin NOT NULL,`expect` varchar(255) COLLATE utf8_bin NOT NULL,`owner` varchar(255) COLLATE utf8_bin NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;"""cursor.execute(sql)  # 执行SQLconn.close()  # 关闭连接

pymysql 插入操作

  • 插入记录
from . import get_conndef test_insert():conn = get_conn()  # 获取连接cursor = conn.cursor()  # 获取游标sql = """INSERT INTO testcase(id, title, expect, owner)values (1, 'S11总决赛', '冠军', 'EDG');"""cursor.execute(sql)  # 执行SQLconn.commit()  # 提交

执行事务

  • 提交操作:commit()
  • 回滚操作:rollback()
  • try-catch-finally
from . import get_conndef test_insert():conn = get_conn()  # 获取连接cursor = conn.cursor()  # 获取游标sql = """INSERT INTO testcase(id, title, expect, owner)values (2, 'S11全球总决赛', '冠军', 'EDG');"""try:cursor.execute(sql)  # 执行SQLconn.commit()  # 提交事务except:conn.rollback()  # 回滚事务finally:conn.close()  # 关闭连接

pymysql 查询操作

  • 查询操作
    • fetchone():获取单条记录

    • fetchmany(n):获取 n 条记录

    • fetchall():获取所有结果记录

import sys
from . import get_conndef test_retrieve():conn = get_conn()  # 获取连接cursor = conn.cursor()  # 获取游标sql = "SELECT * FROM testcase;"# 捕获异常try:cursor.execute(sql)  # 执行SQLrecord = cursor.fetchone()  # 查询记录print(record)except Exception as e:print(sys.exc_info())  # 打印错误信息finally:conn.close()  # 关闭连接

pymysql 更新操作

  • 更新数据表的数据
from . import get_conndef test_update():conn = get_conn()cursor = conn.cursor()sql = "UPDATE testcase SET owner='hogwarts' WHERE id=2;"try:cursor.execute(sql)  # 执行SQLconn.commit()  # 提交事务except:conn.rollback()  # 回滚事务finally:conn.close()  # 关闭连接

pymysql 删除操作

  • 删除数据表的数据
from . import get_conndef test_delete():conn = get_conn()  # 获取连接cursor = conn.cursor()  # 获取游标sql = "DELETE FROM testcase WHERE id=3;"try:cursor.execute(sql)  # 执行SQLconn.commit()  # 提交事务except:conn.rollback()  # 回滚事务finally:conn.close()  # 关闭连接

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!  

http://www.lryc.cn/news/271114.html

相关文章:

  • 第二节 linux操作系统安装与配置
  • ChatGPT 对SEO的影响
  • 光伏逆变器MPPT的作用、原理及算法
  • 一文详解pyspark常用算子与API
  • 使用Rollup 搭建开发环境
  • ubuntu:beyond compare 4 This license key has been revoked 解决办法
  • 华为交换机生成树STP配置案例
  • Avalonia框架下实现热更新
  • 适用于各种危险区域的火焰识别摄像机,实时监测、火灾预防、安全监控,为安全保驾护航
  • react-router-dom5升级到6
  • Linux调试工具—gdb
  • SpringCloud(H版alibaba)框架开发教程之nacos做配置中心——附源码(2)
  • 网络摄像头爆破实战
  • 亚信安慧AntDB数据并行加载工具的实现(二)
  • 【Java进阶篇】JDK新版本中的新特性都有哪些
  • 力扣labuladong一刷day49天迪杰斯特拉
  • MCS接口技术----定时/计数,中断
  • Java开发框架和中间件面试题(10)
  • C++ 具名要求-基本概念-指定该类型对象可以从右值构造
  • Python如何把类当做字典来访问及浅谈Python类命名空间
  • 简述Redis备份策略以及对应的实现机制
  • 【5G PHY】5G 物理层加速卡介绍
  • lftp学习笔记
  • idea 插件开发之 HelloWorld
  • 极速文件搜索工具Everything结合内网穿透实现远程搜索本地文件
  • 【PowerMockito:编写单元测试过程中采用when打桩失效的问题】
  • [蓝桥杯 2018省赛]回家路费
  • 学生管理系统(vue + springboot)
  • 算法(3)——二分查找
  • golang实现可中断的流式下载