Python Flask-RESTful 的 RequestParser 中的正则表达式

Regex in RequestParser for Python Flask-RESTful

想知道在 Python Flask-RESTful, to use regular expressions while parsing arguments 中是否可行?

例如,根据 documentation for multiple values,我在 API 中有以下参数:

parser.add_argument('fq', type=str, action='append', help='expecting filter query (fq) (multiple)')

如描述和参数中所示,此字段可以重复。不幸的是,我正在使用 PHP 库(即 http_build_query via Guzzle),这些库 return 以下列形式重复值:

?fq[0]=foo&fq[1]=bar&fq[2]=baz

由于要解析的 fq 个参数数量未知,因此能够定义一个正则表达式解析器将是无价的,类似于:

parser.add_argument('(fq)\[[0-9]+\]', type=str, action='append', help='expecting filter query (fq) (multiple)')

这将捕获 fq[#] 形式的任何内容,删除方括号 [] 后缀,并将所有这些附加到 args 字典中的 fq 列表中。

Flask-RESTful 可以吗?我在文档中没有看到任何内容,请保存一些关于可能转移到 Marshmallow 之类的评论。

您可以使用以下代码检查正则表达式的输入:

from flask_restful import inputs
...
.....
parser.add_argument('fq', type=inputs.regex('^[0-9]+$'), action='append', help='expecting filter query (fq) (multiple)')