flask_restful的使用方法

一 安装:

pip install flask_restrul

二 初始化并注册路由

# run.py
from flask_restful import  Api
...
api = Api(app)
api.add_resource(Test, '/test/')
...

三 编写资源类,公司项目已删除无关代码

用到了 请求参数解析、自定义参数解析错误、自定义验证函数知识点

# 响应数据格式
def make_json_data(status, msg, data=None, **kwargs):
    json_data = kwargs or {}
    json_data.update({"status": status, "msg": msg, "data": data})
    return json_data

 
# 自定义请求参数解析错误  可参照源码。过程:请求参数解析中如果抛出异常了,会执行flask_restful中的abort,然后返回一个json错误,一般情况我们都会定义自己的json格式数据返回给前端,这个时候,我们就要定制abort,让它返回我们想要的json数据,这里没有使用help属性值,如果大家有更好的办法,望留言
def custom_abort(http_status_code, **kwargs):
    try:
        abort(http_status_code)
    except HTTPException as e:
        if len(kwargs):
            current_app.logger.error('request parameter error')
            e.data = make_json_data(1, '请求参数错误')
        raise


flask_restful.abort = custom_abort
 
# 自定义数据验证,一般情况我们都要对请求参数做验证,可以通过参数请求中type属性定义,这里的错误是默认错误,会被help覆盖
def __custom_page_verify(value):
try:
int(value)
except:
raise ValueError('请求参数错误')
if int(value) <= 0:
raise ValueError('请求参数错误')
else:
return int(value)





class
Test(Resource): decorators = [login_required]

def __init__(self):
        # 请求解析
        # 在请求解析中声明的参数如果没有在请求本身设置的话将默认为 None,请求参数未添加到reqparse中将会被忽略
        # 请求参数有多个值:action=append
        # 参数别名
        # 参数位置
        # 继承解析
        self.reqparse = reqparse.RequestParser()
        super(Test, self).__init__()

    def delete(self, id):
        try:
            req_parse = self.reqparse.copy() #继承
            req_parse.add_argument('loginuser', required=True, type=__custom_page_verify, location='json', help='请求参数错误')
            req_args = req_parse.parse_args()
            loginuser = req_args['loginuser']return make_json_data(0, "")
        except:
return make_json_data('1', '删除设计策略失败')
原文地址:https://www.cnblogs.com/lfxiao/p/9297789.html