1.python接口自动化-python操作mysql数据库(详解)
2.pycharm编写python,图中import MySQLdb没问题,import mysql.connector出错,为什么会出错?
python接口自动化-python操作mysql数据库(详解)
现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的网页源码如何复制,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库,会不会SQL等等。因此,这篇文章来讲解如何使用Python语言操作MySQL数据库。
本科阶段曾学过使用java对MySQL数据库进行操作,基本思路是先连接数据库,然后执行SQL语句对数据库进行操作,示例源码c最后打印结果并断开连接。使用Python操作数据库的流程和以上过程基本一致,在对其进行介绍之前,先介绍一些基本的概念。
以流程图的方式展示Python操作MySQL数据库的流程:首先创建Connection对象(数据库连接对象),用于打开数据库连接;然后创建Cursor对象(游标对象)用于执行查询和获取结果;接着执行SQL语句对数据库进行增删改查等操作并提交事务,此过程如果出现异常则使用回滚技术使数据库恢复到执行SQL语句之前的状态;最后,销毁Cursor对象和Connection对象,以避免多计算机内存过多的占用和浪费。
下面依次对Connection对象、Cursor对象和事务等概念进行介绍。
Connection对象即为数据库连接对象,在Python中可以使用`py mysql.connect()`方法创建Connection对象,该方法的常用参数如下:host(连接的数据库服务器主机名,默认为本地主机);user(用户名,默认为当前用户);passwd(密码,js源码特效无默认值);db(数据库名称,无默认值);port(指定数据库服务器的连接端口,默认为);charset(连接字符集)。
Connection对象常用的方法如下:cursor()(使用当前连接创建并返回游标)、commit()(提交当前事务)、rollback()(回滚当前事务)、close()(关闭当前连接)。
Cursor对象即为游标对象,用于执行查询和获取结果,在Python中可以使用`conn.cursor()`创建,其中`conn`为Connection对象。Cursor对象常用的方法和属性如下:execute()(执行数据库查询或命令,将结果从数据库获取到客户端)、fetchone()(获取结果集的下一行)、fetchmany()(获取结果集的下几行)、fetchall()(获取结果集中剩下的违章源码接口所有行)、close()(关闭当前游标对象)、rowcount(最近一次的execute返回数据的行数或受影响的行数)。
事务是数据库理论中一个比较重要的概念,指访问和更新数据库的一个程序执行单元,具有ACID特性:原子性、一致性、隔离性、持久性。在开发时,我们以以下三种方式使用事务:正常结束事务(`conn.commit()`)、异常结束事务(`conn.rollback()`)、关闭自动commit(设置`conn.autocommit(False)`)。
使用Python实现对MySQL数据库的增删改查等操作。在Python中操作MySQL数据库时,要使用的模块是:Python2中`mysqldb`(`pip2 install mysqldb`),Python3中`pymysql`(`pip3 install pymysql`)。源码资本邮箱本篇博客所使用的环境为:Python 3.7、win 、PyCharm .3.5、pymysql 0.9.2、MySQL 5.6。
下面将以具体代码的形式依次介绍Python中如何实现对MySQL数据库的增删改查等操作。
Python 标准数据库接口为Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。
Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:你可以访问Python数据库接口及API查看详细的支持数据库列表。
不同的数据库你需要下载不同的DB API模块,例如你需要访问Oracle数据库和Mysql数据,你需要下载Oracle和MySQL数据库模块。
DB-API 是一个规范,它定义了一系列必须的对象和数据库存取方式,以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口。
Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python DB-API使用流程:什么是MySQLdb? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
如何安装MySQLdb? 在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。PyMySQL 下载地址:github.com/PyMySQL/PyMy...
数据库连接前,请先确认以下事项:查看有没有创建数据库TESTDB(测试数据库),打开MySQL的client界面输入密码后,输入命令:查看没有那个数据库,那我们就开始创建一个TESTDB数据库,输入命令:再次输入第一步的命令查看,看到已经成功创建。查看TESTDB数据库里,有没有EMPLOYEE(测试用的测试表),输入命令:查看到在TESTDB数据库中没有EMPLOYEE表,那么没有我们就创建一张EMPLOYEE表即可。
创建一个实例,运行结果:(从结果中我们可以看见成功创建了一个Connection和Cursor对象。)下面将以具体代码的形式依次介绍Python中如何实现对MySQL数据库的增删改查等操作。
实例:1、连接数据库运行结果:参考代码:2、创建数据库表如果数据库连接存在我们可以使用execute()方法来为数据库创建表,如下所示创建表EMPLOYEE:运行代码后查看有没有表创建,输入命令:运行结果:参考代码:3、数据库插入操作以下实例使用执行 SQL INSERT 语句向表 EMPLOYEE 插入记录:1、首先查询有没有记录输入查询语句:代码实现:运行结果:再次查看有没有记录,输入第一步的sql语句:(可以看到插入一条记录)参考代码:另一种写法:实例:以下代码使用变量向SQL语句中传递参数:3、数据库查询操作Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。实例:查询EMPLOYEE表中salary(工资)字段大于的所有数据:运行结果:参考代码:4、数据库更新操作更新操作用于更新数据表的的数据,以下实例将 EMPLOYEE 表中的 SEX 字段为 'M' 的 AGE 字段递增 5:1、以前age是,代码实现:运行结果:4、查询age变更到了没有5、参考代码:5、删除操作删除操作用于删除数据表中的数据,以下实例演示了删除数据表 EMPLOYEE 中 AGE 大于 的所有数据:1、大于的只有一条,删除了就没有记录了,输入代码实现:运行结果:查看数据库表,重复第一步参考代码执行事务事务机制可以确保数据一致性。事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。Python DB API 2.0 的事务提供了两个方法 commit 或 rollback。实例:对于支持事务的数据库,在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。commit()方法游标的所有更新操作,rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。
错误处理DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:最后在我的QQ技术交流群里整理了我这几年软件测试生涯整理的一些技术资料,包括:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题,群里也会有大神帮忙解答,群号 ( 备注 知乎 )
全套软件测试自动化测试教学视频G教程资料下载视频教程+PPT+项目源码全套软件测试自动化测试大厂面经
pycharm编写python,图中import MySQLdb没问题,import mysql.connector出错,为什么会出错?
你好:python3.6的是引入
pip3 install PyMySQL#!/usr/bin/python3
import pymysql
# 打开数据库连接db = pymysql.connect("localhost","testuser","test","TESTDB" )
# 使用cursor()方法获取操作游标 cursor = db.cursor()
# SQL 插入语句sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
LAST_NAME, AGE, SEX, INCOME)
VALUES ('Mac', 'Mohan', , 'M', )"""try: # 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()except: # 如果发生错误则回滚
db.rollback()
# 关闭数据库连接db.close()
祝你工作顺利。谢谢!
2024-11-29 21:27
2024-11-29 20:50
2024-11-29 20:33
2024-11-29 20:25
2024-11-29 19:58
2024-11-29 18:49