【发布时间】:2019-11-12 20:05:31
【问题描述】:
我仍在处理我的项目,现在需要搜索数据。通常我会做一个发布请求做一个路由,将搜索字符串作为参数:
@bp.route('/search', methods=['GET', 'POST'])
def search():
if request.method == 'POST':
resp = db.session.query(MyTable).filter(MyTable.name.like('%'+request.form['search_name']+'%')).all()
... # do something else
我的问题是当搜索结果超过每页最大项目数时如何实现分页。
在没有任何用户操作的情况下显示数据时,分页本身不会成为问题,有几种方法可以使用 Flask-paginate 或通过 Flask-SQLAlchemy 的 paginate() 函数。但是如何通过其他页面传输搜索字符串,因为页面作为 GET 参数给出,?page=x 并且搜索字符串是 POST 参数?
不知何故跑题了,在网上查了很多资料,结果只对正常数据做分页,搜索不到结果。
能给我一个建议吗?
提前非常感谢,问候,托马斯
【问题讨论】:
-
为什么你不能把
page也放在POST参数中? -
嗯,这意味着我必须在分页周围包装一个表单,并将每个步骤作为 POST 请求发送,包括搜索字符串作为隐藏字段到路由。但也许一个会话可以帮助我解决这个问题。只是再次阅读一些文件。
标签: python search flask pagination