在Flask中实现分页功能可以通过在视图函数中使用paginate
方法来实现。首先需要安装flask_sqlalchemy
扩展来实现数据库查询的分页功能。
from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import func
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 %}
<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应用中的分页功能。