0

我有一个清单。(该列表来自存储在 memcache 中的数据库查询,理想情况下我不会再次查询数据库。)

x = [thing1, thing2, thing3, ... thing100]

我正在使用此函数一次生成列表中的前 10 个项目。

def grouper(page_size, iterable):
        page = []
    for item in iterable:
        page.append(item)
        if len(page) == page_size:
            yield page
            page = []
    yield page

我正在调用函数

group = grouper(10, x)

我像这样将我的结果提交到我的html

self.render("index.html", x-items = group.next())

在 jinja2 中,我正在遍历 group.next() 并正确显示列表中的前 10 个项目。

我的问题是,我在我的 html('next' 链接) 中放入什么代码来让它再次运行该函数并显示接下来的 10 个项目?

4

1 回答 1

2

当您查询数据库并且需要分页时,您使用游标。数据存储和 NDB 都支持游标。所以不需要先将查询保存在memcache中。

但是如果你需要先将它存储在memcache中,你可以使用你自己的游标。另请参阅 Nick Johnson 的这篇博文:http: //blog.notdot.net/2010/02/New-features-in-1-3-1-prerelease-Cursors

于 2013-02-11T00:12:45.223 回答