繁体   English   中英

使用 flask_restx RequestParser 从查询参数中获取列表列表

[英]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 是ascdesc 我有以下代码:

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 个值(例如ageasc )。

有没有更好的方法来处理这个?

为 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM