在Flask中实现分页功能可以通过在视图函数中使用paginate
方法来实现。首先需要安装flask_sqlalchemy
扩展来实现数据库查询的分页功能。
- 在Flask应用中导入必要的模块和类:
from flask import Flask, render_template, request from flask_sqlalchemy import SQLAlchemy from sqlalchemy import func
- 配置数据库连接和创建Flask应用实例:
app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db' db = SQLAlchemy(app)
- 定义模型类:
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100)) content = db.Column(db.Text)
- 在视图函数中使用
paginate
方法实现分页功能:
@app.route('/')
def index():
page = request.args.get('page', 1, type=int)
per_page = 10
posts = Post.query.order_by(Post.id.desc()).paginate(page, per_page, error_out=False)
return render_template('index.html', posts=posts)
- 在模板文件中显示分页的内容:
{% for post in posts.items %}{{ post.title }}
{{ post.content }}
{% endfor %} {% if posts.has_prev %} Previous {% endif %} {% if posts.has_next %} Next {% endif %}
通过以上步骤,就可以实现在Flask应用中的分页功能。