Python 使用flask_restx RequestParser从查询参数获取列表列表
我正在使用Flask和Flask RESTX模块创建Python服务器。我想定义路线e。G对于此URL:Python 使用flask_restx RequestParser从查询参数获取列表列表,python,rest,flask,query-parameters,flask-restplus,Python,Rest,Flask,Query Parameters,Flask Restplus,我正在使用Flask和Flask RESTX模块创建Python服务器。我想定义路线e。G对于此URL: /users?sort=age,asc&sort=name,desc 因此,当我读取sort查询参数时,我将有一个对列表,其中每对都是(属性、顺序)其中顺序是asc或desc。我有以下代码: from flask_restx import Resource from flask import request from flask_restx import reqparse par
/users?sort=age,asc&sort=name,desc
因此,当我读取sort
查询参数时,我将有一个对列表,其中每对都是(属性、顺序)
其中顺序是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添加
操作
参数和值:'split'
,以获得一个拆分的值列表
并从解析参数字典中获取值
你的例子给出了我的评论:
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']]