Python Flask - 重复的 Flash 消息

Python Flask - Duplicate Flash Messages

我在 get_flashed_messages() 返回两条即显消息时遇到问题。

我有一个 html 表单,它在提交时更新 table 的行值。这是我为它设置的闪信:

@main.route("/update", methods=['GET', 'POST'])
def update():
    if request.method == 'POST':
        my_data = FundingSource.query.get(request.form.get('id'))

        my_data.complete = request.form['complete']
        my_data.guidance_tracker = request.form['guidance_tracker']
        my_data.department = request.form['department']
        my_data.agency = request.form['agency']
        my_data.funding_source = request.form['funding_source']

        db.session.commit()
        flash("Funding Source Updated Successfully")

        return redirect(url_for('main.g_master'))

这是我的模板文件中的 get_flashed_messages():

{% with messages = get_flashed_messages() %}
                {% if messages %}
                    {% for message in messages %}
                        <div class="alert alert-success alert-dismissible" role="alert">
                            <button type="button" class="close" data-dismiss="alert" aria- 
                                    label="close">
                                <span aria-hidden="true">x</span>
                            </button>
                            {{message}}
                        </div>
                    {% endfor %}
                {% endif %}
{% endwith %}

当我 运行 我的 Flask 应用程序时,这是我在表单上按“更新”后得到的输出:

127.0.0.1 - - [23/Dec/2021 02:09:02] "POST /update HTTP/1.1" 302 -
127.0.0.1 - - [23/Dec/2021 02:09:02] "GET /guidanceMaster HTTP/1.1" 200 -
127.0.0.1 - - [23/Dec/2021 02:09:02] "GET /static/main.css HTTP/1.1" 304 -
127.0.0.1 - - [23/Dec/2021 02:09:02] "GET /static/backdrop1.jpg HTTP/1.1" 304 -

如何停止收到两条相同的即显消息?

问题解决了!我在我的一个布局模板文件中调用 get_flashed_messages(),而该模板文件在我的另一个模板文件中被继承,因此出现了重复的消息。

对于其他试图解决问题的人,请检查您是否在文件的其他地方调用了 get_flashed_messages() 函数。