Python装饰器实现参数校验

2020-11-17 发表在 编程语言 1360
    def requires(*params):
        def _deco(view_func):
            @wraps(view_func)
            def _handler(request, *args, **kw):
                # 校验参数
                for key in params:
                    if key not in request.GET:
                        return JsonResponse(data={
                            'code': 'CHECK_ERROR',
                            'msg': '参数校验出错,"{}"是必选的!'.format(key)
                        })
                response = view_func(request, *args, **kw)
    
                return response
    
            return _handler
    
        return _deco
    
    ## 使用
    
        @requires('out_trade_no', 'total_amount', 'subject', 'platform')
    def create(request):
        pass
    
    作者:Java笔记
    本站使用「署名 4.0 国际」创作共享协议,转载请在文章明显位置注明作者及出处。
    评论
    登录以后才可以发布评论哦, 点击登录 发布评论
    评论列表 1人参与,1条评论
    good
    2020-12-22 14:22:38