首页 > 解决方案 > Flask 分页不适用于 AWS Chalice

问题描述

分页不适用于 AWS chalice,还有其他方法可以实现分页吗?

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}

错误:

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.

标签: pythonflaskaws-lambdapaginationchalice

解决方案


分页示例:-

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'),
    }

要求:

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

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

推荐阅读