¿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("""- ^ https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s (https://stackoverflow.com/questions/4840731/how-to-use-cursor-for-pagination/%s)
""" % (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("""- ^ 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 |
""" % (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!
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)