gpt4 book ai didi

python - 无法在 REST API 的 flask 中返回 json 分页

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:06 24 4
gpt4 key购买 nike

我正在使用 Miguel Grinberg 的 Flask REST API 存储库,但无法返回 JSON 分页结果。在线示例使用html模板,但我只想返回一些结果(20),并最终返回上一页和下一页的链接。当我在这句话之后立即返回代码时,我得到“分页对象不可迭代”:

def get_customers():
return jsonify({'customers': [customer.get_url() for customer in
Customer.query.paginate(page=1, per_page=1)]})

我知道我传递了错误的对象,但我不确定我是否应该使用另一个模块,或者我是否走在正确的道路上。有人对实现我的最终目标有什么建议吗?

Miguel 的 repo 中的原始代码是:

@app.route('/customers/', methods=['GET'])
def get_customers():
return jsonify({'customers': [customer.get_url() for customer in
Customer.query.all()]})

整个文件在这里:https://github.com/miguelgrinberg/oreilly-flask-apis-video/blob/a460ad9df2e58c13b90f183e81b4e8953eb186cb/orders/api.py

我正在使用的相关代码:

class Customer(db.Model):
__tablename__ = 'customers'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), index=True)

def get_url(self):
return url_for('get_customer', id=self.id, _external=True)

def export_data(self):
return {
'self_url': self.get_url(),
'name': self.name
}

def import_data(self, data):
try:
self.name = data['name']
except KeyError as e:
raise ValidationError('Invalid customer: missing ' + e.args[0])
return self


@app.route('/customers/', methods=['GET'])
def get_customers():
return jsonify({'customers': [customer.get_url() for customer in
Customer.query.paginate(page=1, per_page=1)]})

@app.route('/customers/<int:id>', methods=['GET'])
def get_customer(id):
return jsonify(Customer.query.get_or_404(id).export_data())

最佳答案

参见 the API docs .

如果你想遍历一个分页对象,使用(例如)

 Customer.query.paginate(page=1, per_page=1).items

这是该页面的项目集合。

关于python - 无法在 REST API 的 flask 中返回 json 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47227425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com