实现搜索功能
- 准备视图函数search()
 - 修改base.html 中搜索输入框所在的
- <form action="{{ url_for('search') }}" method="get">
 -    <input name="q" type="text" placeholder="请输入关键字">
 
 - 完成视图函数search()
- 获取搜索关键字
q = request.args.get('q’) - 条件查询
qu = Question.query.filter(Question.title.contains(q)).order_by('-creat_time’) - 加载查询结果:
return render_template('index.html', question=qu) 
 - 获取搜索关键字
 - 组合条件查询
from sqlalchemy import or_, and_ 
示例:
Lobby.query.filter(
    or_(
        and_(
            Lobby.id == Team.lobby_id,
            LobbyPlayer.team_id == Team.id,
            LobbyPlayer.player_id == player.steamid
        ),
         and_(
            Lobby.id == spectator_table.c.lobby_id,
            spectator_table.c.player_id == player.steamid
        )
    )
)
base.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}Title</title>
    <link rel="stylesheet"type="text/css"href="{{ url_for('static',filename='css/base.css') }}">
    <script src="{{ url_for('static',filename='js/base.js') }}"></script>
    <base target="_blank" />
    {% block head %}{% endblock %}
</head>
<body background="http://p0.so.qhimgs1.com/t01d2e82c8c8f2be36c.jpg" id="myBody">
    <nav class="nav">
        <ul>
            <li><a href="{{ url_for('index') }}"><img src="../static/images/img1.png">首页</a></li>
            <li><a href=""><img src="../static/images/img2.png">下载</a></li>
            <li><a href="{{ url_for('question') }}"><img src="../static/images/img5.png">发布问答</a></li>
            <div>
                {% if user %}
                    <li><a href="{{ url_for('userbase',user_id = session.get('userid'),tag = 1) }}"><img src="../static/images/img3.png">{{ session.get('user') }}</a></li>
                    <li><a href="{{ url_for('logout') }}"><img src="../static/images/img4.png">注销</a></li>
                {% else %}
                    <li><a href="{{ url_for('login') }}"><img src="../static/images/img3.png">登录</a></li>
                    <li><a href="{{ url_for('regist') }}"><img src="../static/images/img4.png">注册</a></li>
                {% endif %}
             </div>
            <form action="{{ url_for('search') }}" method="get" class="navbar-form navbar-left">
            <img class="on_off" id="on_off" onclick="mySwitch()" src="../static/images/pic_bulbon.gif" width="50px">
            <button style="float: right;margin: 5px auto;border-radius: 5px;height: 26px" type="submit"><span class="glyphicon glyphicon-search" aria-hidden="true"></span>搜索</button>
            <input style="float: right;margin: 5px auto;border-radius: 8px;width: 200px;height: 20px;" type="text"name="q" placeholder="输入请关键字">
             </form>
        </ul>
    </nav>
<div id="bottom">
    <a href="">关于我们</a>
    <a href="">意见反馈</a>
    <a href="">安全保障</a>
</div>
<div class="copyright">
    <p>Copyright © 2017. Created by <a href="#" target="_blank">suxihong</a></p>
</div>
{% block main %}{% endblock %}
</body>
</html>
视图函数search()
@app.route('/search/')
def search():
    qu = request.args.get('q')
    ques = Question.query.filter(
        or_(
            Question.title.contains(qu),
            Question.detail.contains(qu)
        )
    ).order_by('-creat_time')
    return render_template('index.html',question = ques)
  

                    
                
                
            
        
浙公网安备 33010602011771号