flask_whooshalchemyplus 搜索

  • 搞了半天没搞好, 不过最后还是搞好了,嘿嘿嘿, 美滋滋,来首 Good Time
  • 好了好了, 进入正题
  1. 删库跑路, 哈哈哈 假的, 我是直接把database删了, 然后再创
  2. 直接跑的话会报错, 比如像db, 还有manage.py啥的懒得写了
  3. models.py
   import flask_whooshalchemyplus
   from jieba.analyse import ChineseAnalyzer

   class Student(db.Model):
       __tablename__ = 'student'
       __searchable__ = ['name', 'uuid']
       __analyzer__ = ChineseAnalyzer()
       id = db.Column(db.Integer, primary_key=True)
       uuid = db.Column(db.String(255), unique=True)
       name = db.Column(db.String(100))      


   flask_whooshalchemyplus.init_app(app)

   if __name__ == '__main__':
       db.create_all()
  1. 运行models.py
  2. forms.py
   from flask_wtf import FlaskForm
   from wtforms import StringField, SubmitField
   from wtforms.validators import DataRequired


   class SearchForm(FlaskForm):
       key = StringField(
           label='关键词',
           description='关键词',
           validators=[
               DataRequired('请输入关键词!')
           ],
           render_kw={
               'placeholder': '请输入关键词'
           }
       )
   
       submit = SubmitField(
           label='查询'
       )
  1. views.py

    @home.route('/search/', methods=['POST', 'GET'])
    def search():
        form = SearchForm()
        if form.validate_on_submit():
            data = form.data
            flask_whooshalchemyplus.whoosh_index(app, Student)
            return redirect(url_for('home.search_results', key=data['key']))
        return render_template('home/search.html', form=form)
    
    
    @home.route('/search_results/<string:key>')
    def search_results(key):
        results = Student.query.whoosh_search(key).all()
        return render_template('home/search_results.html', key=key, results=results, count=count)
  1. search.html
    <form method="post">
        {{ form.key }}
        {{ form.csrf_token }}
        {{ form.submit }}
    </form>
  1. search_results.html
    "{{ key }}"共有{{ count }}条
    <br>
    {% for i in results %}
        {{ i.name }}
        {{ i.uuid }}
        <br>
    {% endfor %}
  1. 貌似有时行有时不行 还是用数据库自带的模糊搜索吧, 也挺好用的

转载于:https://www.cnblogs.com/edhg/p/8955273.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值