flask搜索mysql项目,如何在flask实现form搜索

orz,最近一直在忙着写一个比赛的项目,也没更新过博客

也是很巧合,群里回答一位群友问题,便稍微回了一句

然后他没搞出来,就私聊了。。好人做到底嘛。。。。

(真的,发了红包我都没要)

就开始搞,本来以为很简单,然后没想到.....

1460000011917472?w=418&h=329

问题

就是通过form的方式传一个参数到数据库查询

查询很简单,主要是要分页,一开始他代码很乱

我稍微整理了下

@app.route("/search",methods=['GET','POST'])

def search( ):

'''

search page

'''

info = request.form.get('info')

PER_PAGE = 1 #每一页显示的结果数目

results = food120tab.query.filter(food120tab.proname.like("%{0}%".format(info)))

pagination = results.paginate(1, PER_PAGE, False)

records =pagination.items

return render_template("result.html",pagination=pagination,records=records)

主要的问题在于这样生成的页面,点击换页时再次运行到这里

会出现一个问题是,info会重新get新值,info就变成了None................

解决问题

这里的思路就是要静态保存这个输入的搜索参数,说起来挺尴尬

当时做flask的时候,前端分页并没有很在意,所以不是很熟悉。。。。

对于这个问题呢,解决的思路就是:将参数传到url

1460000011917473?w=1012&h=420

{% macro pagination_widget(pagination, endpoint, info,fragment='') %}

  • 上一页

{% for p in pagination.iter_pages() %}

{% if p %}

{% if p == pagination.page %}

{{ p }}

{% else %}

{{ p }}

{% endif %}

{% else %}

{% endif %}

{% endfor %}

下一页

总共{{ pagination.total }}条/{{ pagination.pages }}页

{% endmacro %}

.....

{% if pagination %}

{% endif %}

1460000011917474?w=907&h=389

小结

说实话,在有空的前提下还是需要去尽量帮助别人的

说不定,别人的问题就触碰到了你的盲区

也给你涨了姿势

继续写项目了,希望结果不会辜负这份付出............

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值