文章内容

2018/7/31 12:17:55,作 者: 黄兵

flask显示消息的方法

后台保存的数据是否成功要向前台页面显示,在Flask中显示消息的通用方法是:flush。

具体后台实现代码:

@manage.route('/admin_add_classification', methods=['GET', 'POST'])
@login_required
@admin_required
def admin_add_classification():
    # 获取当前用户id
    id = current_user.id
    # 页面信息
    user_info = User.query.get_or_404(id)
    title = '首 页'
    page_name = 'Dashboard'
    page_features = 'dashboard & statistics'
    # form
    form = AddClassificationForm()
    if form.validate_on_submit():
        file = form.classification_icon.data
        new_filename = file_upload(file)
        material_classification = MaterialClassification(classification_name=form.classification_name.data,
                                                         classification_icon=new_filename)
        db.session.add(material_classification)
        db.session.commit()
        flash(u'保存成功!', 'success')
    return render_template('manage/admin_material_classification.html', user_info=user_info, name=title,
                           pageName=page_name, description=page_name, pageFeatures=page_features, form=form)

之后前端显示代码:

<div class="container-fluid alter_clear">
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ category }}">
<button type="button" class="close" data-dismiss="alert">&times;</button>
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
</div>

上面可以写成一个通用类,实现复用。

要使用一个自定义的分类,只要使用 flash() 函数的第二个参数:

flash(u'Invalid password provided', 'error')

在模板中,您接下来可以调用 get_flashed_messages() 函数来返回这个分类,在下面的情景中,循环看起来将会有一点点不一样:

{% with messages = get_flashed_messages(with_categories=true) %}
  {% if messages %}
    <ul class=flashes>
    {% for category, message in messages %}
      <li class="{{ category }}">{{ message }}</li>
    {% endfor %}
    </ul>
  {% endif %}
{% endwith %}

这仅仅是一个渲染闪现信息的例子,您可也可以使用分类来加入一个诸如<strong>Error:</strong> 的前缀给信息。


参考资料:消息闪现


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - flask显示消息的方法

分享到:

发表评论

评论列表