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 項目が正しく表示されます。

私の質問は、関数を再度実行して次の 10 項目を表示するために、html(「次の」リンク) にどのコードを入力すればよいかということです。

4

1 に答える 1

2

データベースにクエリを実行し、ページングが必要な場合は、カーソルを使用します。データストアと NDB の両方がカーソルをサポートしています。そのため、最初にクエリを memcache に保存する必要はありません。

ただし、最初に memcache に保存する必要がある場合は、独自のカーソルを使用できます。Nick Johnson による次のブログ投稿も参照してください。

于 2013-02-11T00:12:45.223 に答える