• 实现搜索功能


    1. 准备视图函数search()

    2. 修改base.html 中搜索输入框所在的
      1. <form action="{{ url_for('search') }}" method="get">
      2.    <input name="q" type="text" placeholder="请输入关键字">

    3. 完成视图函数search()
      1. 获取搜索关键字
        q = request.args.get('q’)
      2. 条件查询
        qu = Question.query.filter(Question.title.contains(q)).order_by('-creat_time’)
      3. 加载查询结果:
        return render_template('index.html', question=qu)

    4. 组合条件查询
      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
            )
        )
    )

    https://stackoverflow.com/questions/13370993/sqlalchemy-query-and-or-issue

    from flask import Flask,render_template,request,redirect,url_for,session
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    import config
    from functools import wraps
    from datetime import datetime
    from sqlaclchemy import or_,and_
    @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)
      <form action="{{ url_for('search') }}" method="=get" >
        <td><input  id="search" type="text" name="q" placeholder="请输入关键词:">
            <button id="play" type="submit">查找</button> </td>
          </form>

     

  • 相关阅读:
    MyBatis中#{}和${}的区别
    springBoot 配置详解
    模板方法模式
    记录一次linux挂载数据盘
    缓存击穿,缓存穿透,缓存雪崩
    Echart折线值相加问题
    mybatis plus主键生成策略
    BigDecimal精度损失
    cent0s6安装nginx小程序https
    Centos6 java运行环境部署
  • 原文地址:https://www.cnblogs.com/123hyf/p/8074142.html
Copyright © 2020-2023  润新知