实现搜索功能
1.准备视图函数search()
@app.route('/search/') def search(): pass
2.修改base.html 中搜索输入框所在的
- <form action="{{ url_for('search') }}" method="get">
- <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_
-
@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)