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)')
想知道在 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)')