我正在使用 Flask Python 开发一个 Web 应用程序。
在我的应用程序中,有一个报告页面,显示带有 Flask 分页的结果表。
在表格底部,我添加了一个名为“number_result_per_page”的“选择选项”字段,让用户选择“per_page”参数(每页的项目数)。
我制作了一个 JavaScript,它使用根据用户的选择更新的“per_page”参数来重新加载页面。
问题 :
我的问题是,如果用户几乎在最后一页,并且他决定每页显示“100”个结果,并且要显示的结果少于 100 个,我会收到 404 错误。
我确信我不是唯一遇到此类问题的人。有什么解决方案可以避免这种情况吗?
或者我可以捕获这个特定的错误 404 以显示“错误”弹出窗口并重新加载正确的上一页吗?
这是我的代码示例:
# Route
@app.route('/task_user_report/<int:task_user_id>/view', methods=['GET', 'POST'])
@login_required
def task_user_report(task_user_id):
args = request.args
per_page_task_report = args.get("per_page_task_report", 1, type=int)
actions = db_mysql.session.query(Action).filter_by(id_task_user=task_user_id) \
.filter(Action.id_contact==Contact.id) \
.paginate(page=page_task_report, per_page=per_page_task_report)
render_template(render_html,title='Task Report',legend='Task Report',actions=actions, \
per_page_task_report=per_page_task_report)
# Template
<div class="row justify-content-center" style="width: 95%;">
<div class="col-7 my-auto text-right">
<div class="text-center mt-4" style="display: inline-block;">
<nav aria-label="Pagination">
<ul class="pagination justify-content-center">
{% for page_num in actions.iter_pages(left_edge=1,right_edge=1,left_current=1, right_current=2) %}
{% if page_num %}
{% if actions.page == page_num %}
<li class="page-item active"><a class="page-link" href="{{ url_for('task_user_report',task_user_id=task_user_id,page_task_report=page_num,per_page_task_report=per_page_task_report) }}">{{ page_num }}</a>
{% endif %}
{% endfor %}
</ul>
</nav>
</div>
</div>
</div>
达令说
相关分类