【发布时间】: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