假设有一个典型的烧瓶资源:
class Foo(Resource):
def post(self):
parser = reqparse.RequestParser()
parser.add_argument('type', required=True, choices=('local', 'ftp'), type=str)
...
args = parser.parse_args()
有一个type
。根据此参数值,我需要验证一组参数或其他参数。
现在除type
以外的所有参数都是可选的。所以我编写代码我看type
并且每个案例都手动验证是否存在所需的参数:
parser.add_argument('ip', required=False, ...)
parser.add_argument('login', required=False, ...)
...
if args['type'] == 'ftp':
if not all(a in args for a in ('ip', 'login', 'password')):
raise Exception('Missing some params')
elif args['type'] == '...'
我想避免if ... else
次检查。是否有可能以这种方式构建RegParser
?如果没有,那么我可能需要查看不同的框架吗?