背景:
在做python自动化时,结果断言很重要,相较数据固定校验(数据维护比较复杂),我们更期望实现动态的校验数据。
数据存储在数据库或者redis中,因此学会python操作数据库和redis势在必行。
安装和使用:
安装pymysql
pip install pymysql |
导入pymysql
import pymysql |
数据库操作
1. 首先,连接数据库
conn=pymysql.connect(host='host',user='user',password='password',database='database',charset='utf8') |
2. 获取游标对象
# 得到一个可以执行SQL语句的光标对象,默认输出为元组,如果字典形式输出:cursor=conn.cursor(pymysql.cursors.DictCursor) cursor = conn.cursor() |
3. 执行sql语句
result=cursor.execute(sql) |
4. 关闭光标对象
cursor.close() |
5. 关闭数据库连接
conn.close() |
6. 其他
conn.commit()为提交事务:
因为pymysql 模块默认是启用事务的。如果不提交,相当于没有执行。
一般在增删改sql执行后,需要提交事务。
cursor.executemany批量操作数据。
适用于增删改。
执行sql时,如果发生异常,可进行异常处理-回滚。
try: result=cursor.executemany(sql_add,data) conn.commit() except Exception as e: conn.rollback() |
示例
1. 增加数据
sql_add= 'insert into user(name,pwd) VALUES(%s,%s);' # 执行SQL语句 result=cursor.execute(sql_add,['admin','admin123']) # 提交事务 conn.commit() |
2. 删除数据
sql_del='delete from user where name='admin'; #执行SQL语句 result=cursor.execute(sql_del,['admin','admin123']) conn.commit() |
3. 修改数据
sql_update=' update user set name=%s where name=%s'; result=cursor.execute(sql_update,['admin','admin123']) conn.commit() |
4. 查询数据
# 定义要执行的SQL语句 sql = 'select * from user where name=%s and pwd=%s;' # 执行SQL语句 result=cursor.execute(sql,['admin','admin123']) #获取一个 print(cursor.fetchone()) #获取多个,默认为1 print(cursor.fetchmany(2)) #获取所有 print(cursor.fetchall()) |
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理