¿Cómo usar el cursor () para la paginación?

¿Alguien puede indicarme una aplicación práctica de cursor() para hacer paginación?

No tengo claro cómo usar el cursor() como se indica en la documentación .

Esta es mi consulta:

 items = db.GqlQuery("SELECT * FROM Item ORDER BY date DESC LIMIT 30") 

Lo que hago de esta manera:

 self.response.out.write("
    ") for item in items: self.response.out.write("""
  1. ^ https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s (https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s)
    https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s points https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s by https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s |

  2. """ % (str(item.key().id()), merchandise_type, item.url, item.title, urlparse(item.url).netloc, item.points, item.date.strftime("%B %d, %Y %I:%M%p"), item.user_who_liked_this_item, str(item.key().id()), str(item.key().id()))) self.response.out.write("
")

¡Gracias!

    ACTUALIZAR

    Hola Amir: Gracias por tu respuesta, pero no pude hacer que este enlace funcione. Esto es lo que tengo:

     #===========adding cursor here===========# cursor = self.request.get("cursor") if cursor: query.with_cursor(cursor) items = query.fetch(30) cursor = query.cursor() #===========adding cursor here===========# #===========regular output===========# self.response.out.write("
      ") for item in items: self.response.out.write("""
    1. ^ https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s (https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s)
      https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s
      https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s points https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s by https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s |

    2. """ % (str(item.key().id()), merchandise_type, item.url, item.title, urlparse(item.url).netloc, item.summary, item.points, item.date.strftime("%B %d, %Y %I:%M%p"), item.user_who_liked_this_item, str(item.key().id()), str(item.key().id()))) self.response.out.write("
    ") #===========regular output===========# #===========link to cursor===========# self.response.out.write("""Next Page""" % (merchandise_type, cursor))

    Pero esto resulta en esta url que no muestra nada:

     http://localhost:8083/dir?type=newest?cursor=E9oBdgoTc2FyYWgtZm9yLXByZXNpZGVudBoESXRlbUtSBGRhdGVYAkwhQ1VSU09SIWoiahNzYXJhaC1mb3ItcHJlc2lkZW50cgsLEgRJdGVtGKsCDHIVCAcaBGRhdGUgACoJCMid8OXW4qYCggELCxIESXRlbRirAgzgAQAU 

    Actualización 2

    Ver @Amir comenta abajo: ¿cambiando el segundo ? para & solucionado el problema. ¡Gracias!

    Related of "¿Cómo usar el cursor () para la paginación?"

    Aquí hay un ejemplo simple para comenzar …

     query = db.GqlQuery("SELECT * FROM Item ORDER BY date DESC") cursor = self.request.get('cursor') if cursor: query.with_cursor(cursor) items = query.fetch(30) cursor = query.cursor() ... your regular output ... self.response.out.write('Next Page' % cursor)