Pagination on GAE python with webapp
I don't know how to deal with session with webapp. So I just add all past stacks as a string with delimiter /, and pass it to the template.
test.py
cursors = self.request.get('cursors') if cursors: list_cursors = cursors.split('/') query.with_cursor(list_cursors[-1]) list_cursors.pop() result['previous_cursors'] = '/'.join(list_cursors) result['has_search_result'] = True result['query_results'] = [m for m in query.run(limit=LIST_LIMIT)] result['next_cursors'] = cursors + '/' + query.cursor() query.with_cursor(query.cursor()) has_next = False for m in query.run(limit=1): has_next = True result['has_next'] = has_next
test.html
{% if previous_cursors != None %} <form action="/admin/expenses" method="get" role="form"> <input name="email" class="form-control" type="hidden" value={{email}}> <input name="cursors" class="form-control" type="hidden" value={{previous_cursors}}> <button type="submit" class="btn btn-success ml-2">Previous</button> </form> {% endif %} {% if has_next %} <form action="/admin/expenses" method="get" role="form"> <input name="email" class="form-control" type="hidden" value={{email}}> <input name="cursors" class="form-control" type="hidden" value={{next_cursors}}> <button type="submit" class="btn btn-success ml-2">Next</button> </form> {% endif %}