zoukankan      html  css  js  c++  java
  • 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', '删除设计策略失败')
    
  • 相关阅读:
    PHP教程:PHPUnit学习笔记(三)测试方法进阶
    PHP教程:PHPUnit学习笔记(二)PHPUnit基本用法
    PHP教程:PHPUnit学习笔记(一)PHPUnit介绍及安装
    phpunit框架安装
    防注入(url)
    ssh 密钥详解
    JS判断登陆端是PC还是手机
    字节换算器
    gif 图片制作和拆解
    让你的网站秒开 为IIS启用“内容过期”
  • 原文地址:https://www.cnblogs.com/lfxiao/p/9297789.html
Copyright © 2011-2022 走看看