FlaskRESTful之响应处理

将模型数据序列化成JSON数据

使用步骤

1. 导包

# 导包
from flask_restful import Api, Resource
from flask_restful import marshal_with, fields
from flask_restful import marshal

2. 创建JSON数据样式(序列化样式)

# 定义JSON数据格式
json_data = {
    'name': fields.String,
    'age': fields.Integer
}

3. 使用装饰器(方法)序列化数据

可以使用两种方式来进行序列化操作:

1. 使用装饰器方式

2. 使用方法

class IndexResouce(Resource):
    # data:要序列化的JSON样式
    # envelope:用来包裹数据的key
    # @marshal_with(json_data, envelope='data')
    def get(self):

        u = User(name='laowang', age='23')

        # 第二种方式序列化数据
        # 第一个参数:模型数据
        # 第二个参数:JSON样式
        # 第三个参数:包裹数据的KEY
        return marshal(u, json_data, envelope='data')

案例代码

from flask import Flask
# 导包
from flask_restful import Api, Resource
from flask_restful import marshal_with, fields
from flask_restful import marshal

app = Flask(__name__)

api = Api(app)

# 定义对象类
class User(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 定义JSON数据格式
json_data = {
    'name': fields.String,
    'age': fields.Integer
}


class IndexResouce(Resource):
    # data:要序列化的JSON样式
    # envelope:用来包裹数据的key
    # @marshal_with(json_data, envelope='data')
    def get(self):

        u = User(name='laowang', age='23')

        # 第二种方式序列化数据
        # 第一个参数:模型数据
        # 第二个参数:JSON样式
        # 第三个参数:包裹数据的KEY
        return marshal(u, json_data, envelope='data')

api.add_resource(IndexResouce, '/')

if __name__ == '__main__':
    app.run()
posted @ 2020-03-03 18:51  老王同鞋  阅读(603)  评论(0编辑  收藏  举报