python flask pymysql 分页
时间: 2023-06-22 13:41:45 浏览: 166
python flask实现分页效果
好的,下面是使用 Flask 和 pymysql 实现分页的示例代码:
```python
from flask import Flask, render_template, request
import pymysql
app = Flask(__name__)
@app.route('/')
def index():
# 连接数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='123456', db='mydb', charset='utf8mb4')
cur = conn.cursor()
# 获取分页参数
page_num = int(request.args.get('page', 1)) # 当前页码,默认为 1
page_size = 10 # 每页显示 10 条记录
# 计算 LIMIT 和 OFFSET 的值
limit = page_size
offset = (page_num - 1) * page_size
# 构造 SQL 语句
sql = "SELECT * FROM mytable LIMIT %s OFFSET %s"
# 执行查询
cur.execute(sql, [limit, offset])
rows = cur.fetchall()
# 获取总记录数
cur.execute("SELECT COUNT(*) FROM mytable")
total_count = cur.fetchone()[0]
# 计算总页数
total_page = (total_count + page_size - 1) // page_size
# 关闭数据库连接
cur.close()
conn.close()
# 渲染模板
return render_template('index.html', rows=rows, page_num=page_num, total_page=total_page)
if __name__ == '__main__':
app.run()
```
在示例代码中,我们使用 Flask 框架实现了一个简单的分页功能。具体步骤如下:
1. 定义路由 `/`,用于处理分页请求。
2. 在路由函数中,获取分页参数 `page_num` 和 `page_size`。
3. 根据分页参数计算 LIMIT 和 OFFSET 的值。
4. 构造 SQL 语句,执行查询,获取查询结果 `rows`。
5. 获取总记录数,计算总页数 `total_page`。
6. 关闭数据库连接。
7. 渲染模板,将查询结果 `rows`、当前页码 `page_num` 和总页数 `total_page` 传递给模板。
在模板中,我们可以使用 Jinja2 模板引擎来渲染分页导航条和查询结果。分页导航条可以使用 Bootstrap 的分页组件来实现。
阅读全文