Как показать модальное уведомление с использованием flask framework и python? - PullRequest
0 голосов
/ 09 апреля 2020

Я работаю над созданием веб-приложения с использованием Flask framework и Python. Используя одну из страниц html, я получаю данные от пользователя и обрабатываю их, когда пользователь нажимает кнопку Submit. Требование состоит в том, что, как только пользователь нажимает кнопку Submit, я хотел бы показать модальное уведомление (или любое уведомление) о том, что данные обрабатываются.

Код для кнопки Submit в process_data.html: -

<div class="form-group">
    {{ form.submit(class="btn btn-outline-info") }}
</div>

Я попытался добавить к ней модальный код следующим образом -

<div class="form-group">
    {{ form.submit(class="btn btn-outline-info", data-toggle="modal", data-target="#exampleModal") }}
</div>

, но это не удалось с jinja2.exceptions.TemplateSyntaxError: invalid syntax for function call expression.

rout.py код -

@app.route("/process_data", methods=['GET','POST'])
def process_data():

    form = ProcessDataForm()
    if form.validate_on_submit():
        posts = get_data('process_data', version=form.version.data, cn=form.cn.data, ip=form.ip.data)
        if posts:
            flash(f'Processing Complete!','success')
        else:
            flash(f'Processing failed','warning')
        return render_template('process_data.html', title='Process Data', form=form, posts=posts)   

    return render_template('process_data.html', title='Process Data', form=form)

Может кто-нибудь помочь? Спасибо!

1 Ответ

0 голосов
/ 09 апреля 2020

Вы можете сделать это, используя Сообщение Fla sh.

Пример кода приведен здесь:

from flask import flash

@app.route("/process_data", methods=['GET','POST'])
def process_data():

    form = ProcessDataForm()
    if form.validate_on_submit():
        flash('Data is being processed')
        posts = get_data('process_data', version=form.version.data, cn=form.cn.data, ip=form.ip.data)
        return render_template('process_data.html', title='Process Data', form=form, posts=posts)   

    return render_template('process_data.html', title='Process Data', form=form)

В вас html:

<!doctype html>
<title>My Application</title>
{% with messages = get_flashed_messages() %}
  {% if messages %}
    <ul class=flashes>
    {% for message in messages %}
      <li>{{ message }}</li>
    {% endfor %}
    </ul>
  {% endif %}
{% endwith %}
{% block body %}{% endblock %}

Пожалуйста, найдите документацию для более подробного объяснения.

...