我正在使用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)。
有没有更好的方法来处理这件事?
发布于 2020-09-04 22:15:44
为RequestParser添加带有value:'split'的action参数,以获得拆分后的值列表。
并从已解析的参数字典中获取值。
你的例子给出了我的评论:
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']]https://stackoverflow.com/questions/62697322
复制相似问题