如何使用棉花糖和flask_restful加载参数?

时间:2019-04-08 23:11:04

标签: python flask-restful marshmallow

我设置了flask_restful API,但希望用户在进行post调用时传递numpy数组。我首先尝试从flask_restful使用reqparse,但是它不支持numpy.array的数据类型。我正在尝试使用棉花糖(flask_marshmallow),但是在理解参数如何传递到API时遇到了麻烦。

在我能够执行类似操作之前,

from flask_restful import reqparse
parser = reqparse.RequestParser()
parser.add_argument('url', type=str)
parser.add_argument('id', type=str, required=True)

但是现在我不确定如何将其转换为棉花糖。我已经设置好了:

from flask_marshmallow import Marshmallow
app = Flask(__name__)
ma = Marshmallow(app)
class MySchema(ma.Schema):
    id = fields.String(required=True)
    url = fields.String()

但是在使用新定义的架构进行呼叫时,如何加载用户传递的内容?

1 个答案:

答案 0 :(得分:0)

我不知道长颈瓶棉花糖,而文档仅显示如何使用它来序列化响应。

我想要反序列化请求,您需要使用由棉花糖团队开发和维护的webargs

它有marshmallow integration

from marshmallow import Schema, fields
from webargs.flaskparser import use_args


class UserSchema(Schema):
    id = fields.Int(dump_only=True)  # read-only (won't be parsed by webargs)
    username = fields.Str(required=True)
    password = fields.Str(load_only=True)  # write-only
    first_name = fields.Str(missing="")
    last_name = fields.Str(missing="")
    date_registered = fields.DateTime(dump_only=True)


@use_kwargs(UserSchema())
def profile_update(username, password, first_name, last_name):
    update_profile(username, password, first_name, last_name)
    # ...