Search code examples
pythonflaskaws-lambdapaginationchalice

Flask Pagination is not working with AWS Chalice


Pagination is not working with AWS chalice, is there any other way to implement pagination?

from flask import request

@app.route('/hello/{name}')
def hello_name(name):
    page = request.args.get('page', 1, int)
    print(page)
#    # '/hello/james' -> {"hello": "james"}
    return {'hello': name}

Error:

Traceback (most recent call last):
  File "/Users/thirumal/opt/anaconda3/lib/python3.8/site-packages/chalice/app.py", line 1691, in _get_view_function_response
    response = view_function(**function_args)
  File "/Users/thirumal/git/vfc-lambda/app.py", line 39, in hello_name
    page = request.args.get('page', 1, int)
  File "/Users/thirumal/opt/anaconda3/lib/python3.8/site-packages/werkzeug/local.py", line 348, in __getattr__
    return getattr(self._get_current_object(), name)
  File "/Users/thirumal/opt/anaconda3/lib/python3.8/site-packages/werkzeug/local.py", line 307, in _get_current_object
    return self.__local()
  File "/Users/thirumal/opt/anaconda3/lib/python3.8/site-packages/flask/globals.py", line 38, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

Solution

  • Pagination example:-

    from chalice import Chalice
    
    app = Chalice(app_name='aws-chalice-tutorial')
    
    
    @app.route('/pagination')
    def pagination():
        app.log.debug("you are in Pagination!")
        return {
            'page': app.current_request.query_params.get('page'),
            'limit': app.current_request.query_params.get('limit'),
        }
    

    Request:

    http://localhost:8000/pagination?page=0&limit=10

    {'page':'0','limit':'10'}