如何省略flask的返回信息

发表于:2022-5-06 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:茧城寒舍    来源:简书

  flask要求接口中,一定要有返回,比如下面的代码:
@jobs_bp.route('/init_apps', methods=('GET',),endpoint='init_apps')
def insert_apps():
    '''
    初始化app列表
    :return:
    '''
    # 初始化app
    result = init_apps()
   # 返回信息
   if result:
        return jsonify({'code':200,'msg':'操作成功!','result':''})
   else:
        return jsonify({'code':500,'msg':'初始化失败','result':''})

  其中jsonify部分就是必须要写的部分,如果不写flask会报错。
  现在我只想要在真正需要的情况下去返回信息,如何实现呢?
  代码如下:
from functools import wraps

def standerReturn(func):
    '''
    标准返回信息装饰器
    :return:
    '''
    @wraps(func)
    def wrapperd(*args,**kw):
        return_func = func(*args,**kw)
        if isinstance(return_func,flask.wrappers.Response):
            return return_func
        else:
            return jsonify({'code':200,'msg':'操作成功!','result':''})
    return wrapperd

  使用该装饰器:
@jobs_bp.route('/init_apps', methods=('GET',),endpoint='init_apps')
@standerResturn
def insert_apps():
    '''
    初始化app列表
    :return:
    '''
    # 初始化app
    result = init_apps()
   # 返回信息
   if not result:
      return jsonify({'code':500,'msg':'初始化失败','result':''})

  通过一个简单的装饰器就可以完成了。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号