实现搜索功能

1.准备视图函数search()

@app.route('/search/')
def search():
    pass

2.修改base.html 中搜索输入框所在的

  1. <form action="{{ url_for('search') }}" method="get">
  2.    <input name="q" type="text" placeholder="请输入关键字">
<ul>
  <li><img src="../static/image/花.png" height="40" width="45"></li>
  <li><a href="{{ url_for("index") }}">主页</a></li>
   <form action="{{ url_for('search') }}" method="get">
   <input name="q" type="text" placeholder="请输入关键字">
 {% if username %}
   <li><a href="#">{{ username }}</a></li>
   <li><a href="{{ url_for("logout") }}">注销</a></li>
 {% else %}
   <li><a href="{{ url_for("login") }}">登录</a></li>
   <li><a href="{{ url_for("register") }}">注册</a></li>
 {% endif %}
   <li><a href="{{ url_for("question") }}">发布问答</a></li>
   <li style="float:right"><a class="active" href="#about">关于</a></li>
</ul>

3.完成视图函数search()

a.获取搜索关键字
   q = request.args.get('q’)

b.条件查询
  qu = Question.query.filter(Question.title.contains(q)).order_by('-creat_time’)

c.加载查询结果:
return render_template('index.html', question=qu)

@app.route('/search/')
def search():
    qu=request.args.get('q')
    ques = Question.query.filter(Question.title.contains(qu)).order_by('-creat_time')
    return render_template("index.html",questions=ques)

4.组合条件查询from sqlalchemy import or_, and_ 

  1. @app.route('/search/')
    def search():
        qu=request.args.get('q')
        ques=Question.query.filter(
            or_(
                Question.title.contains(qu),
                Question.title.contains(qu)
             )
         ).order_by('-creat_time')
        return render_template('index.html',question=ques)

     

posted on 2017-12-20 20:10  083李笑晴  阅读(99)  评论(0编辑  收藏  举报

导航