将模型数据序列化成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()