自学内容网 自学内容网

flask渲染页码

在 Flask 框架中,如果你想实现分页功能并渲染页码到你的 HTML 页面,你可以使用 Flask-SQLAlchemy 和 Flask-Paginate 这样的扩展来简化这个过程。下面用一个简单的例子来说明如何在 Flask 应用中实现分页和渲染页码。

首先,确保你已经安装了 Flask-SQLAlchemy 和 Flask-Paginate。如果还没有安装,可以使用 pip 来安装:

pip install flask-sqlalchemy flask-paginate

然后,在你的 Flask 应用中添加以下代码:

from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy
from flask_paginate import Pagination, get_page_args

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)

class Item(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), unique=True, nullable=False)

@app.route('/')
def index():
    page, per_page, offset = get_page_args(page_parameter='page', per_page_parameter='per_page')
    items = Item.query.order_by(Item.id).offset(offset).limit(per_page).all()
    total = Item.query.count()

    pagination = Pagination(page=page, per_page=per_page, total=total,
                            css_framework='bootstrap4')

    return render_template('index.html', items=items, page=page,
                           per_page=per_page, pagination=pagination)

if __name__ == '__main__':
    app.run(debug=True)

在你的 HTML 模板 index.html 中,你可以使用 Bootstrap 或者你喜欢的 CSS 框架来渲染分页链接:

{% extends "base.html" %}

{% block content %}
  <h1>Items</h1>
  {% for item in items %}
    <div>{
  { item.name }}</div>
  {% endfor %}

  {% if pagination %}
    <nav aria-label="Page navigation">
      <ul class="pagination">
        {% for url in pagination.iter_pages() %}
          {% if url %}
            {% if url != pagination.page %}
              <li>

原文地址:https://blog.csdn.net/svygh123/article/details/140480172

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!