为了账号安全,请及时绑定邮箱和手机立即绑定

Flask-paginate 在一页上显示所有结果

Flask-paginate 在一页上显示所有结果

30秒到达战场 2021-07-14 18:14:21
我正在尝试为产品页面设置分页,如下所示from flask_paginate import Pagination, get_page_parameter...page = request.args.get(get_page_parameter(), type=int, default=1)per_page = 4offset = (page) * 10search = Falseq = request.args.get('q')if q:    search = Truepagination = Pagination(page=page, per_page=per_page, offset=offset, total=len(products), search=search, record_name='products')return render_template('products.html', form=form, products=products, subcategories=subcategories, pagination=pagination)而“产品”是从代码中的先前请求中获取的cur.execute("SELECT * FROM products")products = cur.fetchall()但是,在我的产品页面上,我取回了数据库中的所有产品(目前为 20 个),而我可以看到{{ pagination.info }}显示“总共显示 1-4 个产品,共 20 个”。也{{ pagination.links }}工作正常,因为它显示了功能分页链接,但所有产品仍然在页面上可见。你有什么提示可以解决这个问题吗?
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

我找到了解决这个问题的方法。也许不是最好的,如果你知道更好的方法,请告诉我。目前,我已经通过以下方式解决了这个问题:


# Creating a cursor

cur = conn.cursor()


# Setting page, limit and offset variables

per_page = 4

page = request.args.get(get_page_parameter(), type=int, default=1)

offset = (page - 1) * per_page


# Executing a query to get the total number of products

cur.execute("SELECT * FROM products")

total = cur.fetchall()


# Executing a query with LIMIT and OFFSET provided by the variables above

cur.execute("SELECT * FROM products ORDER BY added_on DESC LIMIT %s OFFSET %s", (per_page, offset))

products = cur.fetchall()


# Closing cursor

cur.close()


...


# Setting up the pagination variable, where you are using len(total) to set the total number of 

# items available

pagination = Pagination(page=page, per_page=per_page, offset=offset, total=len(total), 

record_name='products')


# Render template, where you pass "products" variable

# for the prepared query with LIMIT and OFFSET, and passing "pagination" variable as well.

return render_template('products.html', form=form, products=products, pagination=pagination)



查看完整回答
反对 回复 2021-07-27
  • 1 回答
  • 0 关注
  • 254 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信