| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from flask import jsonify
- from functools import wraps
- from tools.api_response import APIResponse
- def route(bp, *args, **kwargs):
- # 路由设置,统一返回格式
- # :param bp: 蓝图
- # :param args:
- # :param kwargs:
- # :return:
- kwargs.setdefault('strict_slashes', False)
- def decorator(f):
- @bp.route(*args, **kwargs)
- @wraps(f)
- def wrapper(*args, **kwargs):
- result = f(*args, **kwargs)
- base = APIResponse(result)
- rv = base.body()
- # 响应函数返回整数和浮点型
- if isinstance(rv, (int, float, str)):
- return jsonify(rv)
- # 响应函数返回元组
- elif isinstance(rv, tuple):
- # 判断是否为多个参数
- if len(rv) >= 3:
- return jsonify(rv[0]), rv[1], rv[2]
- else:
- return jsonify(rv[0]), rv[1]
- # 响应函数返回字典
- elif isinstance(rv, dict):
- return jsonify(rv)
- # 响应函数返回字节
- elif isinstance(rv, bytes):
- rv = rv.decode('utf-8')
- return jsonify(rv)
- else:
- return jsonify(rv)
- return f
- return decorator
|