如何用python脚本实现一次获取token,多次使用token

 更新时间:2023年08月17日 10:57:52   作者:changyixue  
这篇文章主要介绍了如何用python脚本实现一次获取token,多次使用token问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1.两种格式的文件

1)编写配置文件Token.yaml(暂时为空),用来存放token值

另外:

用命令:pip3 install ruamel.yaml安装ruamel.yaml模块,用以去除yaml文件中的大括号

2)编写配置文件access_token.yml,把token值写到配置文件中的关键代码如下:

# 把token值写到配置文件access_token.yml中
def write_token(res):
    curPath = os.path.abspath(os.path.dirname(__file__))
    yamlPath = os.path.abspath(os.path.dirname(curPath) + os.path.sep + "configs/access_token.yml")
    # yamlPath = os.path.dirname(os.path.abspath('.'))+'/data/access_token.yml'
    # res = json.loads(res)
    tokenValue = {
        'access_token': res["access_token"]
    }
    with open(yamlPath, 'w', encoding='utf-8') as f:
        yaml.dump(tokenValue, f)
    logger.info("\n token值已保存至配置文件中")

2.编写鉴权文件testingedu_auth.py

用于获取token值并存储token值:

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
# 用pip3命令安装
import requests
from ruamel import yaml
def test_testingedu_auth():
    url = "http://www.XXX.com.cn/XXX/HTTP//auth"
    headers = {"Content-Type": "application/json"}
    # 发送请求
    response = requests.post(url=url, headers=headers)
    print(response.text)
    print(response.status_code)
    print(response.json()["token"])
    # return response.json()["token"]
    # 把token值写入配置文件中
    # cur = os.path.dirname(os.path.realpath(__file__))
    # p = os.path.join(cur, 'Token.yaml')
    yamlpath = r'C:\Users\Administrator\PycharmProjects\APITest\common\Token.yaml'
    tokenValue = {
        'token': response.json()["token"],
    }
    with open(yamlpath, "w", encoding="utf-8") as f:
        yaml.dump(tokenValue, f, Dumper=yaml.RoundTripDumper)
if __name__ == "__main__":
    test_testingedu_auth()

运行结果:

查看Token.yaml中的值:

3.编写获取token值的脚本:get_token.py

方便其他接口调用(登录、查看和退出)

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
import yaml
import os
# cur = os.path.dirname(os.path.realpath(__file__))
def get_token(yamlName = "Token.yaml"):
    # 从配置文件中读取token值,并返回
    p = os.path.join(r'C:\Users\Administrator\PycharmProjects\APITest\common\Token.yaml')
    f = open(p)
    a = f.read()
    t = yaml.load(a)
    f.close()
    return t["token"]
if __name__ == "__main__":
    get_token()

4.编写登录接口脚本

testingedu_login.py

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
import requests
from common.get_token import get_token
def testingedu_login():
    url = "http://www.XXX.com.cn/XXX/HTTP//login?username=XXX&password=XXX"
    headers = {"token": get_token()}
    response = requests.post(url=url, headers=headers)
    print("返回体是:", response.text)
    print("状态码是:", response.status_code)
if __name__ == "__main__":
    testingedu_login()

运行结果:

5.编写查看接口脚本

testingedu_info.py

#!/usr/bin/env python 
# -*- coding:utf-8 -*
import requests
from common.get_token import get_token
def testingedu_info():
    url = "http://www.XXX.com.cn/XXX/HTTP//getUserInfo?id=XXX"
    headers = {"token": get_token()}
    response = requests.post(url=url, headers=headers)
    print(response.text)
    print(response.status_code)
if __name__ == "__main__":
    testingedu_info()

运行结果:

6.编写退出接口脚本

testingedu_logout.py

#!/usr/bin/env python 
# -*- coding:utf-8 -*-
import requests
from common.get_token import get_token
def testingedu_logout():
    url = "http://www.XXX.com.cn/XXX/HTTP//logout"
    headers = {"token": get_token()}
    response = requests.post(url=url, headers=headers)
    print(response.text)
    print(response.status_code)
if __name__ == "__main__":
    testingedu_logout()

运行结果:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python统计列表中每个元素出现次数的4种实现

    Python统计列表中每个元素出现次数的4种实现

    本文主要介绍了Python统计列表中每个元素出现次数的4种实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python借助ChatGPT读取.env实现文件配置隔离保障私有数据安全

    python借助ChatGPT读取.env实现文件配置隔离保障私有数据安全

    这篇文章主要为大家介绍了python读取.env实现文件配置隔离保障私有数据安全,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python实现将doc转化pdf格式文档的方法

    Python实现将doc转化pdf格式文档的方法

    这篇文章主要介绍了Python实现将doc转化pdf格式文档的方法,结合实例形式分析了Python实现doc格式文件读取及转换pdf格式文件的操作技巧,以及php调用py文件的具体实现方法,需要的朋友可以参考下
    2018-01-01
  • python调用私有属性的方法总结

    python调用私有属性的方法总结

    在本篇文章里小编给大家整理的是一篇关于python调用私有属性的方法总结,对此有需要的朋友们可以学习下。
    2020-07-07
  • Python使用当前时间、随机数产生一个唯一数字的方法

    Python使用当前时间、随机数产生一个唯一数字的方法

    这篇文章主要介绍了Python使用当前时间、随机数产生一个唯一数字的方法,涉及Python时间与随机数相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • python 爬虫如何正确的使用cookie

    python 爬虫如何正确的使用cookie

    这篇文章主要介绍了python 爬虫如何使用cookie,帮助大家绕过网站设置的登录规则以及登录时的验证码识别,完成自身的爬取需求,感兴趣的朋友可以了解下
    2020-10-10
  • Jetson NX 配置 pytorch的问题及解决方法

    Jetson NX 配置 pytorch的问题及解决方法

    这篇文章主要介绍了Jetson NX 配置 pytorch的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Python实现端口扫描器的示例代码

    Python实现端口扫描器的示例代码

    本文主要介绍了Python实现端口扫描器,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Pycharm同步远程服务器调试的方法步骤

    Pycharm同步远程服务器调试的方法步骤

    这篇文章主要介绍了Pycharm同步远程服务器调试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python使用Holoviews创建复杂的可视化布局

    Python使用Holoviews创建复杂的可视化布局

    Holoviews是一个基于Python的开源库,旨在简化数据可视化的创建过程,本文将为新手朋友详细介绍如何使用Holoviews创建复杂的可视化布局,感兴趣的可以了解下
    2024-11-11

最新评论