首页 > 其他分享 >传token给食物类,通过新写一个test.py去调用登录类和食物类

传token给食物类,通过新写一个test.py去调用登录类和食物类

时间:2023-08-21 12:55:44浏览次数:45  
标签:__ self 新写 yaml token 食物 data resp

#\libs\request_test.py
from libs.login_my import Login from libs.food_my import Food # 调用登录获得token l=Login() t=l.login(is_need_token=True) # 将登录获得的token 传递给食物模块 f=Food() f.token=t # 传token给整个食物类,这样整个食物类可以直接使用token;因为基类已经将token作为属性,所以食物类可以直接传token resp_query=f.query() resp_add=f.add() resp_update=f.update() print(resp_query) print(resp_add) print(resp_update)
# libs中 login.py继承基类中的发送方法
from common.baseAPI_my import BaseAPI
class Login(BaseAPI):
    # 登录方法
    def login(self,is_need_token=False):
        # 发送请求 获得请求结果
        resp = BaseAPI.send_request(self)

        # 是否需要添加请求头
        if is_need_token:
            return resp['data']['token']
        else:
            return resp

    # 登出
    def logout(self):
        pass
if __name__ == '__main__':
    l=Login()
    res=l.login(is_need_token=False)
    print(res)
# libs 文件中 food.py继承基类中的发送方法
from common.baseAPI_my import BaseAPI
from libs.login_my import Login
class Food(BaseAPI):


    # 查询食物方法
    def query(self):
        # 发送请求 获得请求结果
        resp = self.send_request(self)
        return resp
    # 新增食物
    def add(self):
        # 发送请求 获得请求结果
        resp = self.send_request(self)
        return resp
    # 修改食物
    def update(self):
        # 发送请求 获得请求结果
        resp = self.send_request(self)
        return resp

if __name__ == '__main__':
    f=Food()
    res= f.query()
    print(res)
#common 中baseAPI.py
import inspect
import requests
from configs.config import HOST
from utils.handle_md5 import get_md5
from utils.handle_yaml import get_yaml

class BaseAPI():
    # 属性存请求体 url method
    def __init__(self,token=''):
        # 如果有token  需要放类的属性中  类中方法都可以使用
        yaml_path = '../configs/evn.yaml' # yaml的路径
        yaml_data = get_yaml(yaml_path)  # 获得整个yaml中的数据
        self.data = yaml_data[self.__class__.__name__] # 获得以继承基类的类的名称为键的 yaml中的值
        # 默认数token为空,如果商店,食品类需要token,实例化商店,传入token参数,发请求
        self.token = token

    # 方法
    def send_request(self,data='',**kwargs):
        api_data=self.data[inspect.stack()[1][3]]
        api_url=f'{HOST}{api_data["url"]}'
        if inspect.stack()[1][3]=='login':
            api_data['payload']['password']=get_md5(api_data['payload']['password'])

        resp=requests.request(method=api_data['method'],
                              url=api_url,
                              data=api_data['payload'],
                              headers={"Authorization": self.token},
                              **kwargs
                              )
        return resp.json()

 

标签:__,self,新写,yaml,token,食物,data,resp
From: https://www.cnblogs.com/haha1988/p/17645730.html

相关文章

  • Kettle实例(获取Token并带入请求接口拉取数据到本地)
    背景      近期工作中遇到许多需要协同的表单文档被放到云文档,那么我们本地做数据分析就需要先抽取云文档实时数据到本地数据库,根据接口文档我们需要先获取Token,再将返回值带到接口中发起请求拉取数据,因为在做数据仓库项目调度用到过Kettle,想到RESTclient组件可以完成这......
  • JSON Web Tokens(JWT)
    JSONWebTokens(JWT)是一种用于身份验证和授权的开放标准。它可以在客户端和服务器之间安全地传输信息,并且非常适合以下场景:身份验证:JWT可以用于验证用户的身份。当用户登录后,服务器可以生成一个JWT并将其返回给客户端。客户端可以在后续的请求中将JWT作为身份验证凭证发送给服务器......
  • token和jwt
    1. 简介  105使用Token存储用户信息,认证用户。 Token是一个访问系统的令牌(字符串)。Token 是在服务端产生的。前端可以使用用户名/密码向服务端请求认证(登录),服务端认证成功,服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的身份。服务器端在处理......
  • SyntaxError: /xxxx.vue: Unexpected token, expected “,“,[object Promise]export {
    本地老工程vue2.7.x+webpack4在升级webpack5的时候遇启动和打包报错:SyntaxError:SyntaxError:/xxxxx.vueUnexpectedtoken,expected","(1:8)>1|[objectPromise]|^2|export{render,staticRenderFns}最后才发现是prettier导致的。推荐看......
  • 登陆接口实现返回token
    自定义登陆接口,然后让SpringSecurity对这个接口放行,让用户访问这个接口的时候不用登录也能访问。在接口中我们通过AuthenticationManager的authenticate方法来进行用户认证,所以需要在SecurityConfig中配置把AuthenticationManager注入容器。认证成功的话要生成一个jwt,放入响......
  • C#.Net6 WebAPI制作简单自定义Token验证
    一、创建自定义类MyMiddleware继承中间件IMiddleware并实现接口二、在实现接口中的方法编写Token验证逻辑三、在WebAPI的Program类中的builder里注入自定义的类和app里配置自定义中间件builder.Services.AddScoped(typeof(MyMiddleware));app.UseMiddleware(typeof(MyMidd......
  • 基于 JWT + Refresh Token 的用户认证实践(转载)
    HTTP是一个无状态的协议,一次请求结束后,下次在发送服务器就不知道这个请求是谁发来的了(同一个IP不代表同一个用户),在Web应用中,用户的认证和鉴权是非常重要的一环,实践中有多种可用方案,并且各有千秋。 基于Session的会话管理在Web应用发展的初期,大部分采用基于Session......
  • 一、别人的东西不能乱拿,这叫教养; 二、用过的东西放回原位,这叫习惯, 三,遇到长辈要先打招
    一、别人的东西不能乱拿,这叫教养;二、用过的东西放回原位,这叫习惯,三,遇到长辈要先打招呼,这叫礼仪;四、不可以打断别人讲话,这叫尊重;五、不可以说脏话,这叫素质,六、食物不能浪费,这叫节约;七、主动为自己的过失和错误道歉,这叫担当。管好这七条......
  • Sa-Token
    2.SpringBoot集成初体验依赖引入SpringBoot3.x版本引入<!--Sa-Token权限认证,在线文档:https://sa-token.cc--><dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot3-starter</artifactId><version>1.35.0......
  • k8s dashboard token过期时间太短的解决方案
    在下载的dashboardyaml文件中args这里增加一行-'--token-ttl=43200' spec:securityContext:seccompProfile:type:RuntimeDefaultcontainers:-name:kubernetes-dashboardimage:kubernetesui/dashbo......