flask: 封装返回json的统一格式

一,函数

from flask import jsonify

def success_response(data=None):
    """结果响应:带数据和状态信息"""
    return jsonify({
        'status': "success",
        'code': 200,
        'msg': "",
        'data': data
    })

def failed_response(code=500, msg="", data=None):
    """结果响应:带数据和状态信息"""
    return jsonify({
        'status': "failed",
        'code': code,
        'msg': msg,
        'data': data
    })

二,model

from app import db

# 设计数据库模型
class User(db.Model):
    # 指定表名称
    __tablename__ = 'user'
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), nullable=False)
    nickname = db.Column(db.String(256), nullable=False)
    age = db.Column(db.Integer, default=0)
    city = db.Column(db.String(256), nullable=False)

    def to_json(self):
        """资源和JSON的序列化转换"""
        json_obj = {
            'id': self.id,
            'username': self.username,
            'nickname': self.nickname,
            'age': self.age,
            'city': self.city,
        }
        return json_obj

三,调用

对象需要转为字典再输出成json

@user.route("/list/")
def user_list():

    # 得到数据库中的数据
    users = User.query.all()

    for index, user in enumerate(users):
        if user.id == 2:
            users[index].city = "沈阳市"

    return success_response([user.to_json() for user in users])

四,测试效果:

image

 

posted @ 2025-11-08 19:18  刘宏缔的架构森林  阅读(3)  评论(0)    收藏  举报