Вам необходимо прочитать ключевые слова, полученные из почтового запроса, используя request.form ['search']
как показано ниже:
#function for search bar.
@app.route('/search', methods=['GET', 'POST'])
def search():
# index for field name
mongo.db.recipes.create_index('name')
# index for field name and example
#mongo.db.recipes.create_index([("name", pymongo.DESCENDING),
#("example", pymongo.ASCENDING)])
if request.method == "POST":
q=request.form['search']
else:
q = ""
query = ( { "$text": { "$search": q } } )
results = mongo.db.recipes.find(query)
print (results)
return render_template('searchresults.html', recipes = results)
В форме необходимо заменить
<form action="{{ url_for('search', text=text) }}" method="POST">
К
<form action="{{ url_for('search') }}" method="POST">
Edit:
Я предлагаю использовать метод GET вместо функции POST для функции поиска, потому что, когда клиент обновляет браузер, он просит его подтвердить отправку формы. Поэтому нам нужно заменить:
if request.method == "POST":
q=request.form['search']
else:
q = ""
К
q = request.args.get('search', "")
И
<form action="{{ url_for('search') }}" method="POST">
от
<form action="{{ url_for('search') }}" method="GET">