flask实现分页功能
时间: 2024-03-21 16:17:25 浏览: 68
完整的Flash分页导航演示
在 Flask 中实现分页功能,可以使用 Flask-Paginate 扩展包。下面是一个简单的示例:
1. 安装 Flask-Paginate
通过 pip 安装 Flask-Paginate:
```
pip install Flask-Paginate
```
2. 创建 Flask 应用
```
from flask import Flask, render_template
from flask_paginate import Pagination, get_page_args
app = Flask(__name__)
# 模拟数据
data = list(range(100))
# 定义每页显示的条目数
PER_PAGE = 10
@app.route('/')
def index():
# 获取当前页码和每页显示的条目数
page, per_page, offset = get_page_args(page_parameter='page', per_page_parameter='per_page')
# 计算出当前页显示的数据
current_data = data[offset: offset + per_page]
# 创建 Pagination 对象
pagination = Pagination(page=page, per_page=PER_PAGE, total=len(data), css_framework='bootstrap4')
# 渲染模板并传递参数
return render_template('index.html', data=current_data, pagination=pagination)
if __name__ == '__main__':
app.run(debug=True)
```
3. 创建模板文件
在 templates 目录下创建 index.html 文件:
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Flask Pagination</title>
<link rel="stylesheet" href="{{ pagination.css }}">
</head>
<body>
<table class="table">
<thead>
<tr>
<th>ID</th>
</tr>
</thead>
<tbody>
{% for item in data %}
<tr>
<td>{{ item }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="pagination">
{{ pagination.links }}
</div>
</body>
</html>
```
在模板文件中使用 `pagination.links` 渲染分页链接。
以上代码实现了一个简单的分页功能,可以根据实际需求进行修改和优化。
阅读全文