【问题标题】:serialize values of aggregate results from sqlalchemy using marshmallow使用棉花糖序列化来自 sqlalchemy 的聚合结果的值
【发布时间】:2020-01-20 00:39:24
【问题描述】:

我正在对一个表执行count()group_by() 操作,如下所示:

db.session.query(func.count(Tag.name), Tag.name).group_by(Tag.name).limit(limit)

并使用棉花糖对其进行序列化:

class TagSchema(ma.ModelSchema):
    class Meta:
        model = Tag
    name = fields.String(validate=validate.Length(min=1))

这给了我结果:

[{"name" : "asdf"},{"name":"qwer"}]

但我没有看到计数值,我应该如何更新架构以在输出中获取计数值。

【问题讨论】:

    标签: python flask sqlalchemy flask-sqlalchemy marshmallow


    【解决方案1】:

    首先将计数字段标记为:

    db.session.query(func.count(Tag.name).label('count'), Tag.name).group_by(Tag.name).limit(limit)
    

    然后添加一个新的shema:

    class TagCountSchema(ma.ModelSchema):
        name = fields.String()
        count = fields.Int(dump_only=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-12
      • 2019-08-07
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 2017-11-26
      • 2019-08-03
      相关资源
      最近更新 更多