如何省略flask的返回信息

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':''})

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容