【问题标题】:Adding literal_column to Flask-SQLAlchemy query将 literal_column 添加到 Flask-SQLAlchemy 查询
【发布时间】:2016-01-08 16:21:41
【问题描述】:

我正在尝试将一些标量值列添加到使用 Flask-SQLAlchemy 分页功能的选择中。目前我有:

records = Item.query.paginate(1, 3, False).items

如何编辑此代码以添加包含总页数的列(理想情况下再添加一列包含总记录数)?

【问题讨论】:

    标签: python flask sqlalchemy flask-sqlalchemy


    【解决方案1】:

    您可以尝试将字典传递给 json.dumps:

    paginated = Item.query.paginate(1, 3, False)
    results = {
        "records": paginated.items,
        "num_pages": paginated.pages,
        "total_count": paginated.total   
    }
    
    return json.dumps(results, cls=AlchemyEncoder)
    

    【讨论】:

      【解决方案2】:

      paginate 返回一个Pagination 对象,其中包含pagestotal 等属性。 See the API.

      paginated = Item.query.paginate(1, 3, False)
      num_pages = paginated.pages # gives you total number of pages
      total_count = paginated.total
      

      【讨论】:

      • 很抱歉造成混淆,但主要问题是“如何将literal_column()(具有num_pages 和/或total_count 的值)添加到生成的QuerySet?”
      • 为什么需要将其作为单独的列? paginate 函数已经返回查询集中的页数。
      • 我的代码返回 (return json.dumps(records, cls=AlchemyEncoder)) json 表示 paginate().items 查询集,我希望 num_pages&total_count 成为此 json 数据的一部分,以便我可以返回所有信息(db行 + 几个汇总值)在单个 http 响应中。
      猜你喜欢
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 2019-07-22
      • 2019-04-23
      • 2019-12-13
      • 2017-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多