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

news2024/11/27 3:57:11

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_conn

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

pymysql 创建表

  • 创建表 testcase
from . import get_conn

def 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)  # 执行SQL
    conn.close()  # 关闭连接

pymysql 插入操作

  • 插入记录
from . import get_conn

def test_insert():

    conn = get_conn()  # 获取连接
    cursor = conn.cursor()  # 获取游标

    sql = """INSERT INTO testcase
    (id, title, expect, owner)
    values (1, 'S11总决赛', '冠军', 'EDG');
    """

    cursor.execute(sql)  # 执行SQL
    conn.commit()  # 提交

执行事务

  • 提交操作:commit()
  • 回滚操作:rollback()
  • try-catch-finally
from . import get_conn

def test_insert():
    conn = get_conn()  # 获取连接
    cursor = conn.cursor()  # 获取游标

    sql = """INSERT INTO testcase
    (id, title, expect, owner)
    values (2, 'S11全球总决赛', '冠军', 'EDG');
    """
    try:
        cursor.execute(sql)  # 执行SQL
        conn.commit()  # 提交事务
    except:
        conn.rollback()  # 回滚事务
    finally:
        conn.close()  # 关闭连接

pymysql 查询操作

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

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

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

import sys
from . import get_conn

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

pymysql 更新操作

  • 更新数据表的数据
from . import get_conn

def test_update():
    conn = get_conn()
    cursor = conn.cursor()
    sql = "UPDATE testcase SET owner='hogwarts' WHERE id=2;"
    try:
        cursor.execute(sql)  # 执行SQL
        conn.commit()  # 提交事务
    except:
        conn.rollback()  # 回滚事务
    finally:
        conn.close()  # 关闭连接

pymysql 删除操作

  • 删除数据表的数据
from . import get_conn

def test_delete():
    conn = get_conn()  # 获取连接
    cursor = conn.cursor()  # 获取游标
    sql = "DELETE FROM testcase WHERE id=3;"
    try:
        cursor.execute(sql)  # 执行SQL
        conn.commit()  # 提交事务
    except:
        conn.rollback()  # 回滚事务
    finally:
        conn.close()  # 关闭连接

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1349438.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 代码下载(1)

本文主要参考: BQ3588C_代码下载 1. 安装依赖工具 安装命令如下: sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flexbison gperf build-essential zip curl zlib1g-dev gcc-multilib g-multiliblibc6-dev-i386 l…

Note: An Interesting Festival

An Interesting Festival 一个有趣的节日。 festival The Agricultural Feast takes place after the independence Day. 农业盛会在独立日后举行 takes place independence feast agricultural It is not a worldwide celebration. 它不是一个全球的庆典。 worldwide ce…

利用计算机名称共享打印机步骤,如何连接共享打印机汇总教程

转载:利用计算机名称共享打印机步骤,如何连接共享打印机汇总教程-CSDN博客 新到办公室第一件事肯定是连接办公区的共享打印机,那么对于已经设置好的共享打印机,我们自己的电脑要怎么连上它呢,下面就以win7和win10系统给大家具体讲…

【揭秘】如何使用LinkedHashMap来实现一个LUR缓存?

LRU(Least Recently Used)缓存是一种常用的缓存淘汰策略,用于在有限的缓存空间中存储数据。其基本思想是:如果数据最近被访问过,那么在未来它被访问的概率也更高。因此,LRU缓存会保留最近访问过的数据&…

Android 反编译处理Dex

前言 当我们将Android项目打包上架的时候,为了提高被人反编译代码的可能性可以提取 dex 文件对代码进一步做混淆处理。 本文不对相关工具做过多的解释,不了解的可以先熟悉相关工具的使用。 相关工具(点击直接下载) jadx-gui&a…

PyTorch 节省显存技巧:Activation Checkpointing

参考资料 官方文档: https://pytorch.org/docs/2.0/checkpoint.html官方博客:https://medium.com/pytorch/how-activation-checkpointing-enables-scaling-up-training-deep-learning-models-7a93ae01ff2d Activation Checkpointing 介绍 激活检查点 …

miniqmt配置

1 下载安装qmt 2 将安装目录下的 xtquant 目录复制到 python安装目录 的相同路径下 3 测试 from xtquant import xtdata def on_data (datas):#回调函数 print(datas) seq xtdata.subscribe_whole_quote(code_list[‘002306.SZ’], callbackon_data) time.sleep(10) xtda…

2023-12-15 LeetCode每日一题(反转二叉树的奇数层)

2023-12-15每日一题 一、题目编号 2415. 反转二叉树的奇数层二、题目链接 点击跳转到题目位置 三、题目描述 给你一棵 完美 二叉树的根节点 root ,请你反转这棵树中每个 奇数 层的节点值。 例如,假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] &…

钉钉-蓝牙打卡和平台打卡的区别

钉钉的群是部门概念。 你的账号归属到哪个群,就是哪个群的员工。 -------------------------------------------------------------------- 蓝牙打卡是对账号归属进行打卡的。 平台打卡是只对属于自己平台内的账号打卡的。 ----------------------------------…

cnPuTTY CAC 0.80—PuTTY CAC 0.80中文版本简单说明~~

随着PuTTY 0.80在2023-12-18发布,PuTTY CAC也同步进行了更新。 PuTTY CAC 0.80同步更新了针对Terrapin攻击(CVE-2023-48795)的修改,除了这些还进行了额外的添加和修改。另外来自cnPuTTY CAC自身也进行了小的修改。更多详细的内容请参考以下内容。 首先&…

产品经理学习-从0-1搭建策略产品

从0-1搭建策略产品 目录: 回顾策略产品 如何从0-1搭建策略产品 回顾策略产品 之前也了解过从产品实施的角度来看,策略就是针对问题的解决方案,在互联网时代更集中体现在2个维度:业务场景和数据应用 如何从0-1搭建策略产品 我们…

Python玫瑰花完整代码

文章目录 环境需求完整代码普通玫瑰花三维玫瑰花多彩玫瑰花环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0(可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)【注】 python环境搭建请见:https://want…

数据结构(二)栈和队列

本文是在原本数据结构与算法闯关的基础上总结得来,加入了自己的理解和部分习题讲解 原活动链接 邀请码: JL57F5 目录 栈和队列1.什么是栈 ?栈的入栈、出栈操作 2.什么是队列 ?队列的入队和出队 3.案例讲解 : 使用Python实现栈来管理定时任务Task 类TaskStack 类…

Spring Cloud Function SpEL注入漏洞(CVE-2022-22963)分析

一、概述 2022年3月24日,Pivotal修补了Spring Cloud Function中一个关键的服务器端代码注入漏洞(Spring表达式语言注入),该漏洞有可能导致系统被攻击。Spring是一种流行的开源Java框架,该漏洞与另一个相关的远程代码执…

rime中州韵 help lua Translator

lua 是 Rime中州韵/小狼毫输入法强大的武器,掌握如何在Rime中州韵/小狼毫中使用lua,你将体验到什么叫 随心所欲。 先看效果 在 rime中州韵 输入效果一览 中的 👇 help效果 一节中, 我们看到了在Rime中州韵/小狼毫输入法中输入 h…

07-2-接口文档管理工具-swagger注解使用__ev

swagger参考demo package com.example.swagger2.controller;import com.example.swagger2.exception.SwaggerException; import com.example.swagger2.model.User; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*;import java.util.Has…

MySQL数据库索引优化

一、引言 1. 索引的重要性 MySQL数据库索引的重要性主要体现在,一是查询速度优化,索引可以极大地提高查询速度。对于没有索引的表,MySQL必须进行全部扫描来找到所需的行,如果表中数据量很大,那么通常很慢。通过适当的…

Python pycharm编辑器修改代码字体

在pycharm编辑器下修改代码字体,可以按照以下步骤: 点开上图所示的菜单, 再点击File->Settings,进入设置页面。 我们找到Editor下的Font并点选,然后我们就可以在右侧修改字体相关配置了。 这里建议使用等宽字体&…

数据结构第1章 线性表

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 0、思维导图线性表1、顺序存储1)顺序表2&…

自定义html5中日期选取器的样式

自定义html5中日期选取器的样式 1. 前言1.1 关于 h5 的新特性1.2 使用浏览器 2. html5中日期选取器默认样式3. 自定义日期样式3.1 简单定义3.2 花式样式定义 4. 改变日期格式5. 参考6. 关于低版本浏览器隐藏小三角 1. 前言 1.1 关于 h5 的新特性 可看下面的文章 HTML5 新特性之…