[英]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.