[英]Get list of lists from query parameters using flask_restx RequestParser
我正在使用 Flask 和 Flask-RESTX 模块创建 Python 服务器。 我想为此 URL 定义路由:
/users?sort=age,asc&sort=name,desc
因此,当我读取sort
查询参数时,我将获得对列表,其中每对是(property, order)
,其中 order 是asc
或desc
。 我有以下代码:
from flask_restx import Resource
from flask import request
from flask_restx import reqparse
parser = reqparse.RequestParser()
parser.add_argument("sort", type=str)
@api.route("/users")
class Users(Resource):
@api.marshal_list_with(...)
@api.expect(parser)
def get(self):
print(request.args.getlist("sort"))
代码打印['age,asc', 'name,desc']
很好,但是我必须用逗号手动拆分值并检查每个项目中是否只有 2 个值(例如age
和asc
)。
有没有更好的方法来处理这个?
为 RequestParser 添加带有 value: 'split'
的action
参数以获取拆分的值列表。
并从解析的 arguments 字典中获取值。
你的例子给出了我的评论:
from flask_restx import Resource
from flask import request
from flask_restx import reqparse
parser = reqparse.RequestParser()
parser.add_argument("sort", type=str, action="split")
@api.route("/users")
class Users(Resource):
@api.marshal_list_with(...)
@api.expect(parser)
def get(self):
print(parser.parse_args()["sort"])
结果应如下所示:
[['age', 'asc'], ['name', 'desc']]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.