【问题标题】:I'm trying to implement a search on my flask app我正在尝试在我的烧瓶应用程序上实现搜索
【发布时间】:2020-10-24 04:03:54
【问题描述】:

我正在做一个烧瓶教程here,最后,继续开发部分,它说要实现一个按名称过滤索引页面的搜索框,经过跟踪和错误后,我想显示搜索页面,但是我仍然没有得到搜索结果。

这是我的搜索 HTML:

    <form method="GET" action="{{ url_for('blog.search') }}">
       <input type="text" placeholder="Search by" name="q" value="{{ request.args.get('q', '') }}">
       <button type="submit">Go</button>
    </form>

这是我的路线

    from flask import request
    @bp.route('/search', methods=['GET','POST'])
    def search():
      db = get_db()
      query = request.args.get('q')
      posts = db.execute(
      "SELECT title, body FROM post WHERE body LIKE ? ",
      ('%'+ query +'%',)).fetchall()
      return render_template('blog/search.html', posts=posts )

这是我的搜索“blog/search.html”模板

<ul>
  {% for post in posts %}

  <li> {{ post['title'] }} </li>
  <li> {{ post['body'] }} </li>

  {% endfor %}
</ul>
    

我的路由或 sql 查询有问题吗? 或者有没有更好的方法来实现搜索,在没有任何扩展的烧瓶中,谢谢。

【问题讨论】:

  • 您可以使用调试器,例如 pdb 或 IDE oder 编辑器的内置调试器。然后,您可以逐步解决问题并定位问题。
  • 谢谢,但是我从来没有用过python的调试器,我需要单独研究一下。
  • 这并不难。 VS Code 已为 Flask 调试和 pdb 预先配置设置,请查看realpython.com/python-debugging-pdb
  • 我已经在检查了,谢谢

标签: python html sqlite flask jinja2


【解决方案1】:

我想通了。 这是我的错误,下面的“blog/search.html”模板是我的工作代码

我的搜索路线:

@bp.route('/search', methods=['GET','POST'])
def search():
  db = get_db()
  query = request.args.get('q')
  posts = db.execute(
    "select id, title from post where title LIKE ? ",
    ('%'+ query+'%',)
  ).fetchall()
  
  return render_template('blog/search.html', posts=posts)

注意:这条路线只检查我的数据库的标题

我的新“blog/search.html”模板:

{% if posts %}
    <ul>
      {% for post in posts %}
      <li><a href="{{ url_for('blog.single', id=post['id']) }}">{{ post[1] }}</a></li>
      {% endfor %}
    </ul>
{% else %}
    <p>no entries</p>
{% endif %}

注意:'{{ url_for... }}' 是用于查看搜索详细信息的链接

希望这对尝试在 this 教程中实现搜索的人有所帮助。 干杯:)

【讨论】:

    猜你喜欢
    • 2017-05-02
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多