在Ajax调用的Pyramid视图中使用生成器

时间:2014-01-12 05:15:09

标签: python generator pyramid

我想懒洋洋地将项目加载到我的HTML中。每个项目都是计算上费力的,所以我只想加载和处理最低限度的必要项目。我认为发电机将是一个很好的解决方案。

简而言之,我有类似

的东西
@view_config(renderer='json', xhr=True, route_name='load_more_posts')
def load_more_posts(self):  
    items = Render.get_items(5)
    return items

Render只是我的班级名称,而get_items是一种调用我的生成器的next()方法5次的方法,每次检索一个新项目并添加到一个列表。现在我有一个列表items,我只想通过JSON输出它。

我该如何使这项工作?每次我用我的AJAX调用调用这个视图时,生成器都会被“重新实例化”,而我只获得前5个项目。有没有办法让这个生成器在AJAX调用之间保持不变,以便后续调用它会通过它进行并最终耗尽它?

谢谢。

1 个答案:

答案 0 :(得分:3)

坚持你的发电机不是一个好主意。它会为您的HTTP应用程序带来状态。

相反,请使用分页。

/posts?page=2