Python中如何在Flask-RESTful路由中设置参数以获取列表参数?

api.add_resource(Todo,'/v1_todo/<id>'),比方说这样只能获取单个参数,但要怎么样才能获取从前端传过来的列表参数呢?最近刚接触 flask,还有很多不熟悉的地方,请多多包涵,先谢谢各位大大的解答了。</id>


Python中如何在Flask-RESTful路由中设置参数以获取列表参数?
6 回复

在 URL 里传列表?


在Flask-RESTful里处理列表参数,直接用reqparseaction='append'就行。比如你要接收多个tag参数,可以这样搞:

from flask import Flask
from flask_restful import Api, Resource, reqparse

app = Flask(__name__)
api = Api(app)

parser = reqparse.RequestParser()
parser.add_argument('tag', action='append')  # 关键在这里

class ItemResource(Resource):
    def get(self):
        args = parser.parse_args()
        tags = args.get('tag', [])
        return {'tags': tags}

api.add_resource(ItemResource, '/items')

if __name__ == '__main__':
    app.run(debug=True)

请求的时候用/items?tag=python&tag=flask&tag=rest,返回的就是{"tags": ["python", "flask", "rest"]}

简单说就是加个action='append'参数。

from flask import request

在 request 里面.

parser = RequestParser()
parser.add_argument(“id”, location=“json”, action=“append”)

req = parser.parse_args(strict=True)
id_ = req.get(“id”)

楼主的意思是传表单, 3L 正解, 以下是官方文档的示例,楼主要多看官方文档哦

from flask_restful import reqparse

parser = reqparse.RequestParser()
parser.add_argument(‘rate’, type=int, help=‘Rate to charge for this resource’)
args = parser.parse_args()
rate = args[‘rate’]

from flask import request
requst.json.get()
别用 flask_restful 接收 List,有坑

回到顶部