Flask-Restful RegParse条件验证

时间:2016-03-02 13:51:59

标签: python flask-restful

假设有一个典型的烧瓶资源:

 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?如果没有,那么我可能需要查看不同的框架吗?

0 个答案:

没有答案