Flask SqlAlchemy 结果转 JSON

flask-sqlalchemy 查询结果转 JSON 可以通过在模型中定义一个 to_json() 方法实现:

class Repo(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    region = db.Column(db.String(50), nullable=True)
    endpoint = db.Column(db.String(200))
    bucket = db.Column(db.String(100))
    access_id = db.Column(db.String(200))
    access_key = db.Column(db.String(200))
    repo_passwd = db.Column(db.String(200))

    def __repr__(self):
        return '<Bucket {bucket}>'.format(bucket=self.bucket)

    def to_json(self):
        return {
            'id': self.id,
            'region': self.region,
            'endpoint': self.endpoint,
            'bucket': self.bucket,
        }

使用时:

repos = Repo.query.all()
return jsonify([x.to_json() for x in repos])

参考