温馨提示×

Flask中怎么实现分页

小亿
167
2024-05-10 18:13:00
栏目: 编程语言

在Flask中实现分页功能可以通过在视图函数中使用paginate方法来实现。首先需要安装flask_sqlalchemy扩展来实现数据库查询的分页功能。

  1. 在Flask应用中导入必要的模块和类:
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import func
  1. 配置数据库连接和创建Flask应用实例:
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
db = SQLAlchemy(app)
  1. 定义模型类:
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100))
    content = db.Column(db.Text)
  1. 在视图函数中使用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)
  1. 在模板文件中显示分页的内容:
{% for post in posts.items %}
    <h2>{{ post.title }}</h2>
    <p>{{ post.content }}</p>
{% endfor %}

{% if posts.has_prev %}
    <a href="{{ url_for('index', page=posts.prev_num) }}">Previous</a>
{% endif %}

{% if posts.has_next %}
    <a href="{{ url_for('index', page=posts.next_num) }}">Next</a>
{% endif %}

通过以上步骤,就可以实现在Flask应用中的分页功能。

0