处理请求和响应
在 Flask-RESTful 中,可以使用 reqparse 模块来处理请求数据,并使用 marshal 模块来序列化响应数据。以下是一个示例,展示如何使用 reqparse 和 marshal 模块来处理请求和响应:
代码语言:javascript复制from flask_restful import reqparse, fields, marshal_with
parser = reqparse.RequestParser()
parser.add_argument('name', type=str, required=True, help='Name is required')
resource_fields = {
'message': fields.String
}
class HelloWorld(Resource):
@marshal_with(resource_fields)
def get(self):
args = parser.parse_args()
name = args['name']
message = f'Hello, {name}!'
return {'message': message}
在上面的代码中,我们首先定义了一个名为 parser 的 RequestParser 对象,用于解析请求中的参数。我们向 parser 对象中添加了一个名为 name 的参数,类型为字符串,并将其标记为必需的参数。如果客户端未提供 name 参数,则 Flask-RESTful 会返回一个错误消息。
接下来,我们定义了一个名为 resource_fields 的字典,用于序列化响应数据。在本例中,我们只序列化了一个名为 message 的字符串字段。
最后,我们在 HelloWorld 资源类中添加了一个名为 get 的方法。我们使用 @marshal_with 装饰器将响应数据序列化为 JSON 格式。在 get 方法中,我们首先使用 parser 对象解析请求中的参数,并从中获取名为 name 的参数。接下来,我们根据参数 name 构造一个名为 message 的字符串,并返回一个包含 message 字段的字典。