Я выполняю поиск из приложения Flask в документах, хранящихся в Mongo. Моя цель - вернуть результаты поиска в мое приложение. Мой взгляд выглядит следующим образом:
@app.route('/search', methods=['GET', 'POST'])
def search():
form = SearchForm()
if form.validate_on_submit():
search_results = db.openings.find({"$text": {"$search": search}})
print([i for i in search_results])
return redirect(url_for('search_results'))
return render_template('search.html', title='Home', form=form)
Если я просто напечатаю search_results
, я получу объект курсора. Когда я пытаюсь перебрать объект, как я делаю в коде, я получаю bson.errors.InvalidDocument: cannot encode object: <function search at 0x10df4d510>, of type: <class 'function'>
. Если я попытаюсь без скобок, я получу еще один объект курсора.
В конечном счете, я хотел бы передать результаты в шаблон search_results
, который выглядит следующим образом:
{% extends "index.html" %}
{% block content%}
<div class="container">
{% for result in search_results %}
<article class="media content-section">
<div class="media-body">
<div class="article-metadata">
<h3><a class="mr-2" href="#">{{ result.title }}</a></h3>
<small class="text-muted">{{ result.company }}</small>
</div>
<p class="article-content">{{ result.description|safe }}</p>
</div>
</article>
{% endfor %}
</div>
{% endblock content %}
Чтоправильный способ передачи результатов?