Как получить flask значение поля формы в URL Jijnja2 в HTML - PullRequest
0 голосов
/ 30 марта 2020

Я новичок в Flask. Я хочу передать значение поля flask_mongoengine.wtf в URL-адрес jijnja в HTML. Вот мой код. Я хочу передать {{form.from_time_filter}} значение поля формы в formtime = '{{form.from_time_filter}}' Как я могу это сделать?


{% macro render_pagination(page, endpoint ) %}
<div class=pagination>
    {%- for page in posts.iter_pages() %}
    {% if page %}
    {% if page != posts.page %}
    <a href="{{ url_for(endpoint, page=page, formtime='{{form.from_time_filter}}', totime='2020-01-01T23:59', word='Զավենը' ) }}"> {{ page }}</a>
    {% else %}
    <strong>{{ page }}</strong>
    {% endif %}
    {% else %}
    <span class=ellipsis>…</span>
    {% endif %}
    {%- endfor %}
</div>
{% endmacro %}
{{ render_pagination(posts, 'test_list') }}

<form  method="POST">
    {{ form.from_time_filter.label }} {{ form.from_time_filter }}
    {{ form.to_time_filter.label }} {{ form.to_time_filter }}
    {{ form.incon_filter.label }} {{ form.incon_filter }}
    {{ form.wordtype_filter.label }} {{ form.wordtype_filter }}
    <input type="submit" value="Filter">
</form>




1 Ответ

0 голосов
/ 30 марта 2020

Я не уверен, поможет ли это, но я постараюсь дать ответ.

Я использую форму для обработки запросов на моем 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 будет выглядеть следующим образом:
search for iframe
когда я ищу "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)
...