• 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了,所以我们可以根据长度来进行判断

  • 相关阅读:
    高级架构进阶之HashMap源码就该这么学
    MySQL底层索引剖析
    一篇文章把本该属于你的源码天赋还给你
    不懂RPC实现原理怎能实现架构梦
    观《亿级流量网站架构核心技术》一书有感
    高效程序员如何优雅落地需求
    职场软技能:开启程序员的“破冰之旅”
    获取ScrollView的onScrollListener
    Android自定义控件之圆形进度条ImageView
    Android之內置、外置SDCard
  • 原文地址:https://www.cnblogs.com/bzbz/p/13964304.html
Copyright © 2020-2023  润新知