首页 > 解决方案 > TypeError:“分页”对象在 Flask 中不可迭代

问题描述

我有一张包含数据的表格。我想在 API 响应中获得带有分页的结果集。

我正在使用该GET方法调用API。这里是

要求:

  1. 需要页码和数据数
  2. 具有上一个和下一个 URL 的分页数据

我的代码:

@api.route('/', methods=["GET"])
@app.route('/page/<int:page>')
class List(Resource):
    """USER data(s)"""

    def get(self, page=1):
        """GET Lists"""
        all_data = User.query.paginate(page, per_page=2)
        result = user_serializer.dump(all_data)
        return result

问题:

TypeError:“分页”对象在 Flask 中不可迭代

标签: pythonpython-3.xflaskflask-sqlalchemy

解决方案


您的代码的问题是您试图将Pagination对象传递给您的serializer. 相反,序列化程序期望的是模型实例列表或单个模型实例。只需将您的电话更改为此

result = user_serializer.dump(all_data.items)

来源

  1. https://flask-sqlalchemy.palletsprojects.com/en/2.x/api/#flask_sqlalchemy.Pagination

推荐阅读