【发布时间】:2016-01-08 16:21:41
【问题描述】:
我正在尝试将一些标量值列添加到使用 Flask-SQLAlchemy 分页功能的选择中。目前我有:
records = Item.query.paginate(1, 3, False).items
如何编辑此代码以添加包含总页数的列(理想情况下再添加一列包含总记录数)?
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy
我正在尝试将一些标量值列添加到使用 Flask-SQLAlchemy 分页功能的选择中。目前我有:
records = Item.query.paginate(1, 3, False).items
如何编辑此代码以添加包含总页数的列(理想情况下再添加一列包含总记录数)?
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy
您可以尝试将字典传递给 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)
【讨论】:
paginate 返回一个Pagination 对象,其中包含pages 和total 等属性。 See the API.
paginated = Item.query.paginate(1, 3, False)
num_pages = paginated.pages # gives you total number of pages
total_count = paginated.total
【讨论】:
paginate 函数已经返回查询集中的页数。
return json.dumps(records, cls=AlchemyEncoder)) json 表示 paginate().items 查询集,我希望 num_pages&total_count 成为此 json 数据的一部分,以便我可以返回所有信息(db行 + 几个汇总值)在单个 http 响应中。