前言
通常我们会为每个资源创建不同的解析器,如果多个解析器直接有共同的参数,可以写一个包含所有共享参数的父解析器。
然后使用copy() 复制一个父类解析器
- 同一个参数覆盖使用 replace_argument()
- 完全删除参数校验remove_argument()
- 继续添加参数add_argument()
解析器继承
基于一个父类解析器
from flask_restx import reqparse
parser = reqparse.RequestParser()
parser.add_argument('foo', type=int)
parser_copy.add_argument('bar', type=int)
使用copy()
方法复制一份
parser_copy = parser.copy()
parser_copy.add_argument('car', type=str)
于是parser_copy 会校验3个参数:foo,bar, car
替换
replace_argument()
替换原有的参数校验
parser_copy.replace_argument('foo', required=True, location='json')
替换后'foo'参数就是一个必填项了,并且设置了校验位置location='json'
删除
remove_argument()
删除多余的参数
parser_copy.remove_argument('foo')
parser_copy 就不会对'foo'参数校验了