Flask实现自定义分页

Flask实现自定义分页

Flask可以使用第三方库如Flask-SQLAlchemy和Flask-Pagination来实现自定义分页。

  1. 使用Flask-SQLAlchemy查询数据库并获取数据。
  2. 使用Flask-Pagination设置分页参数,如每页显示的数量和当前页码。
  3. 在视图函数中使用paginate()方法对数据进行分页。
  4. 在模板中使用分页导航来显示分页链接。

具体示例:

前端代码示例:


<div class="pagination"> <a href="{{ url_for('route_name', page=1) }}">首页</a> {% if page > 1 %} <a href="{{ url_for('route_name', page=page-1) }}">上一页</a> {% endif %} {% for i in range(1, pages+1) %} {% if page == i %} <span class="active">{{ i }}</span> {% else %} <a href="{{ url_for('route_name', page=i) }}">{{ i }}</a> {% endif %} {% endfor %} {% if page < pages %} <a href="{{ url_for('route_name', page=page+1) }}">下一页</a> {% endif %} <a href="{{ url_for('route_name', page=pages) }}">尾页</a> </div>

后端代码示例:


from flask import Flask, render_template from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' db = SQLAlchemy(app) class Article(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80)) body = db.Column(db.Text) @app.route('/') def index(): page = int(request.args.get('page', 1)) per_page = 10 articles = Article.query.paginate(page, per_page, error_out=False) return render_template('index.html', articles=articles)

上面的代码中,我们使用了SQLAlchemy的paginate()方法来实现分页,并在模板中使用了url_for()函数来生成分页链接。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享