Flask 如何突出显示模板内“我的结果”中的搜索查询
好的,我用Flask 如何突出显示模板内“我的结果”中的搜索查询,flask,sqlalchemy,jinja2,whoosh,Flask,Sqlalchemy,Jinja2,Whoosh,好的,我用Flask WhooshAlchemy @views.route('/search', methods=['GET']) def search(): query = request.args['query'] results = [] def _model_search(m): return m.query.whoosh_search(query).all() if query: for model in [Stude
Flask WhooshAlchemy
@views.route('/search', methods=['GET'])
def search():
query = request.args['query']
results = []
def _model_search(m):
return m.query.whoosh_search(query).all()
if query:
for model in [Student, StudentHomework, Winner]:
results += _model_search(model)
return render_template(
'search.html',
query=query,
results=results,
)
然后,在我的搜索模板中,我输出找到的结果
。如何突出显示匹配的查询
例如,在我的Student
表中,我正在name
和forname
列中搜索。在我的模板中,我做了如下操作:
{% for student in results %}
{% student.name %}
{% student.forname %}
{% endfor %}
如何突出显示查询字符串的匹配位置 现在回答太晚了,但我希望这会对将来的人有所帮助。 即使当我看到这个问题时,我也有同样的问题,当我想出一个解决方案时,我认为最好与大家分享 尽管您希望突出显示两列。但我只能突出显示一列
{% for student in results %}
{% if query in student.name %}
{{ student.name.replace(query, '<span style="background-color: yellow;">{}</span>'.format(query)) }}
{% endif %}
{% else %}
{{ student.name }}
{% endfor %}
{%用于结果中的学生%}
{%if查询在student.name%}
{{student.name.replace(查询,{}.format(查询))}
{%endif%}
{%else%}
{{student.name}
{%endfor%}
如果这些是student.name列中的查询,它将突出显示为CTRL+F
注意:查询是搜索输入内容我想我知道这个问题的答案,但您需要详细说明一下。是否要用一根火柴突出显示该字段?(例如,如果学生姓名匹配,则突出显示学生姓名)。您到底想突出显示什么?我只想突出显示搜索
查询发生的情况。就像在浏览器中按住CTRL+F键并查找单词一样。谢谢你确定这个解决方案有效吗?我对flask没有丰富的经验,但我认为它不会让你像那样放置HTML标记,它会用
替换
,显然你的答案不起作用。我的学习编程的朋友花了太多的时间想知道那东西出了什么问题,因为你的回答质量很低。