Flask中的表单错误时,消息不会闪烁

时间:2015-08-24 16:18:40

标签: python flask flask-wtforms

我已经将我的问题编辑得更清楚。当我验证我的表单并且它有错误时,我会刷新我的消息,但这不会在我的模板中呈现:

@app.route('doit', methods=["GET", "POST"])
def doit():
    form = MyForm()
    if form.validate_on_submit():
        flash('success')
    else:
        if form.errors:
            print "You've got errors!"
            flash('You have some errors')
            print session['_flashes']

    return render_template('test.html')

我的用于显示消息的模板:

{% with messages = get_flashed_messages() %}
    {{ messages }}
    <br/>
    {{ session }}
{% endwith %}

当我提交有错误的表单时,我会快速flash("You have some errors"),当我将会话打印到控制台时,我会在会话中看到_flashes,并显示错误消息:

# my console output
You've got errors!
[('message', 'You have some errors')]

但是,当模板呈现时,{{ session }}根本没有_flashes,因此get_flashed_messages()始终为空列表。结果没有消息闪烁。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

好的伙计们,我再次相当愚蠢。事实证明表单是通过AJAX发布的,但调用的结果是期望JSON格式而不是整个HTML模板。

我已经改为返回一个json响应,现在它很好。