我还在做我的项目,现在要搜索数据了。通常,我执行post请求执行路由,并将搜索字符串作为参数:
@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()函数来实现。但是,既然page是用?page=x
作为GET参数给出的,而搜索字符串是POST参数,那么如何通过其他页面传递搜索字符串呢?在
不知怎么的,我脑子不好,在网上做了很多调查,但我只得到了对正常数据进行分页的结果,而不是搜索结果。在
能给我个建议吗?在
多谢你的问候,托马斯
我想我已经找到了一个解决方案——Flask的课程:
第一个调用通过POST请求完成,将数据发送到相应的应用程序路径. 如果会话值还没有设置,它将被设置在第5行。通过会话,您可以确保在所有页面中都使用原始搜索字符串。在
这可能不是高度开发,但至少是一个如何在搜索结果中分页的有效示例。此短片段中未实现的正在清除会话。在
你好,托马斯
相关问题 更多 >
编程相关推荐