zoukankan      html  css  js  c++  java
  • 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()
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    51nod 1254 最大子段和 V2
    51nod 1115 最大M子段和 V3
    51nod 1053 最大M子段和 V2
    51nod 1052 最大M子段和
    51nod 1051 最大子矩阵和
    web.config或App.config中AttachDBFilenamex相对路径问题
    [转帖]unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(主要讲区别)
    unity3d 第一人称脚本解释MouseLook
    unity3d-游戏实战突出重围,整合游戏
    unity3d-游戏实战突出重围,第四天 添加角色
  • 原文地址:https://www.cnblogs.com/chao666/p/12403966.html
Copyright © 2011-2022 走看看