与谷歌应用程序引擎分页

时间:2011-05-22 00:17:53

标签: python google-app-engine

关于如何与gae进行分页,我有几个问题。测试代码:

    for i in range(0, 6):
        MyClass(myProperty=unicode(i)).put()
    q = MyClass.all()
    cursor = None
    print
    haveMore = True
    batchSize = 2
    i = 1
    while haveMore:
        print 'Batch', i
        i = i + 1
        result_set = q.with_cursor(start_cursor=cursor).fetch(batchSize)
        for obj in result_set:
            print obj.myProperty
        cursor = q.cursor()
        print cursor
        haveMore = True if len(result_set) == batchSize else False

输出:

Batch 1
0
1
E9oBTgoMdGVzdGJlZC10ZXN0GgdNeUNsYXNzIUNVUlNPUiFqHWoMdGVzdGJlZC10ZXN0cg0LEgdNeUNsYXNzGAIMggENCxIHTXlDbGFzcxgCDOABABQ=
Batch 2
2
3
E9oBTgoMdGVzdGJlZC10ZXN0GgdNeUNsYXNzIUNVUlNPUiFqHWoMdGVzdGJlZC10ZXN0cg0LEgdNeUNsYXNzGAQMggENCxIHTXlDbGFzcxgEDOABABQ=
Batch 3
4
5
E9oBTgoMdGVzdGJlZC10ZXN0GgdNeUNsYXNzIUNVUlNPUiFqHWoMdGVzdGJlZC10ZXN0cg0LEgdNeUNsYXNzGAYMggENCxIHTXlDbGFzcxgGDOABABQ=
Batch 4

问题:

  1. 首先,当在for循环的不同迭代中使用相同的游标时,结果集如何推进?
  2. 如何修复边缘情况? for循环应在3次迭代后终止。批次4为空。
  3. 如何在gae中反向翻页(即返回而不是下一页)?
相关问题