Я не уверен, поможет ли это, но я постараюсь дать ответ.
Я использую форму для обработки запросов на моем flask веб-сайте, код для формы выглядит так: следующим образом:
<form action="{{ url_for('index') }}" class="form-inline" id="search-form" method="get" role="search">
<div class="form-group">
<input class="form-control" name="q" placeholder="Search" type="text" value="{% if search %}{{ search }}{% endif %}">
</div>
</form>
Код python, который затем обрабатывает ввод, выглядит следующим образом:
def get_entries(offset=0, per_page=5, table=""): # Used in Index
search_query = request.args.get('q')
page = request.args.get(get_page_parameter(), type=int, default=1)
if search_query:
entries = table.search(search_query).where(table.published == True).order_by(table.timestamp.desc()).paginate(page, per_page)
print(entries)
else:
entries = table.select().where(table.published == True).order_by(table.timestamp.desc()).paginate(page, per_page)
print(entries)
return entries[offset: offset + per_page]
Когда используется моя форма поиска, она перенаправляет на страницу / index, / Затем страница индекса проверяет, есть ли значение с именем 'q' (это имя указывается во входном теге с помощью name = "q"), если оно есть, URL будет выглядеть следующим образом:
когда я ищу "iframe".
И на всякий случай, если вам это нужно, вот как выглядит мой маршрут для / index:
@app.route('/') # For browsing and searching up blog entries
@app.route('/index')
def index():
table = Entry
pagination_entry = get_entries(table=table)
pagination = get_pagination_entries(table=table)
return render_template('index.html', pagination=pagination, pagination_entry=pagination_entry)