python学习02

1、python代码的执行

python的代码是从上到小运行的,运行到第七行的时候,发现调用了一个方法,就返回那个方法去,将传过来的参数1给a,1给b,执行方法里边的内容,返回1+1,所以方法的返回值就等于2,即a=2

2、python中的异常处理

异常处理在之后学习自动化的时候经常遇到,要理清异常处理代码的执行流

python的异常处理主要有两种形式:try/except和try/except/else/finally

2.1、异常处理:try/except

先执行try里边的代码,如果发现try里边的代码报错了就跳出来执行except里边的代码

 

如果try里边的代码没有报错,那就执行try里边的代码,不执行except里边的代码

 

2.2、还有try/except/else/finally(try和except是必选的,else和finally是可选的,但是如果有finally的话,是必须要执行的)

没报错的时候执行try-else-finally

           

报错执行except-finally

       

即:报错:try>except>finally(报错的时候try里边的不打印)

没有报错: try> else > finally

except可以有多个,表示多种不同的异常

3、pymsql

python的第三方包:pymysql

pymysql就是使用python操作mysql数据库,相当于python的navicat

pymysql主要是为接口自动化测试服务的

3.1、步骤:

1、安装pymysql包:以管理员身份运行cmd,输入安装命令:pip3 install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

2、导入包,封装对应的查询、修改、删除、插入代码

将这些放到单独的一个.py文件中,之后要用的时候直接调用即可,比如我就将它放到了dbtools.py文件中

#导入pymysql
import pymysql
#封装查询方法
def query(sql):
    #1、连接MySQL数据库
    db = pymysql.connect(host = "127.0.0.1",user="root",password = "123456",db = "test25")  #实现打开数据库的操作
    #2、获取对应的查询窗口
    cur = db.cursor()
    #3、执行查询sql语句
    cur.execute(sql)
    #4、获取所有的结果
    res = cur.fetchall()
    #5、关闭数据库连接
    db.close()
    return res

#测试query方法
if __name__ == "__main__":
    sql = "select * from student where id = 1"
    r = query(sql)
    print(r)

3、应用:调用封装好的查询方法模拟接口登陆的完整过程(调接口) 

#模拟接口登陆的完整过程(调接口)
#两个文件在同一模块下相互导入(兄弟关系)
from dbtools import query

u = input("请输入账号:")
p = input("请输入密码:")

sql = "select * from t_pymysql_account where username = '{}' and password = '{}'".format(u,p)    #注意拼接
res = query(sql)
if len(res) != 0:
    print("登陆成功")
else:
    print("登录失败")

 

sql参数问题:sql语句中可能也会带有引号的,但是在代码中也有引号,这就冲突了,解决办法:不相同原则,里边外边一单一双,也可以在sql语句中引号前面加反斜杠转义\

例如:sql = "select * from t_pymysql_account where username = '{}' and password = '{}'".format(u,p)中的'{}'是SQL语句本身就有引号,这里冲突了

查询的结果返回值类型是元组,每一个小元组就是对应的数据库中的一行数据:((行1),(行2),(行3)。。。)如果没有结果的话,查询返回的是空元组

这里就引申出了,如果我们去查询一个接口自动化测试,去查用户名和密码是否匹配,如果查到了,那返回值肯定就不为0,没查到肯定就为0了,所以我们可以根据长度来进行判断

 

posted @ 2020-11-12 15:48  一个名  阅读(92)  评论(0编辑  收藏  举报