Flask入门笔记-16_序列化

from flask import Flask
from flask_restful import Resource, Api, fields, marshal_with, marshal

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

#  # 定义 json 字段规则
user_fields= {
    'username':fields.String(attribute='name')  # 指定序列化 对象数据 中的'name'属性 ,序列化后:username: obj.name
}


# 模拟数据库
class User():
    def __init__(self, name):
        self.name = name


class Demo(Resource):
    def get(self):
        # 模拟创建 数据库对象
        user1 = User('zs')
        print(user1.name)

        # 将模型对象按照字段规则来进行json格式转换
        return marshal(user1, user_fields, envelope='data') # envelope参数可以设置json数据的外层包装


    @marshal_with(user_fields) # 使用装饰器的形式
    def post(self):
        user1 = User('zs')
        return user1 # 直接返回模型对象即可

api.add_resource(Demo, '/')

if __name__ == '__main__':
    app.run(host='0.0.0.0', port='8000')