[关闭]
@buoge 2017-09-22T11:04:55.000000Z 字数 1219 阅读 1261

Flask 消息闪现

Python


http://aiax.info/post/xiaoxishangxian

使用

常规写法

  1. 使用flash消息
  1. from flask import flash
  2. @app.route('/', methods=['GET'])
  3. def index():
  4. flash('flash successfully!')
  5. return render_template('index.html')
  1. 接受flash消息
    在jinja2模板中,可以使用get_flashed_messages()获取消息。 常规写法:
  1. {% for message in get_flashed_messages() %}
  2. {{ message }}
  3. {% endfor %}
  4. ###文艺写法:
  5. {% with messages = get_flashed_messages() %}
  6. {% if messages %}
  7. {% for message in messages %}
  8. <div class="alert alert-success alert-dismissible" role="alert">
  9. <button type="button" class="close" data-dismiss="alert">
  10. <span aria-hidden="true">&times;</span>
  11. <span class="sr-only">Close</span>
  12. </button>
  13. {{ message }}
  14. </div>
  15. {% endfor %}
  16. {% endif %}
  17. {% endwith %}

消息类型

flash()方法的第二个参数是消息类型,可选“message,info, warning,error"。

jinja2模板通过设置get_flashed_messages()的with_categories和category_filter参数,可以获取消息类型,也可以过滤特定的消息类型。

分类闪现消息

我们还可以对闪现消息进行分类,比如有些消息是正常的通知消息,而有些消息是出错消息。同样,我们需要两个步骤: 使用 flash() 函数的第二个参数,不使用的话,默认是 'message'

  1. flash('add book fail', 'error')
  2. 接着,在模板中调用get_flashed_messages()函数来返回这个分类,类似下面:
  3. {% with messages = get_flashed_messages(with_categories=true) %}
  4. {% for category, message in messages %}
  5. {{category}}: {{ message }}
  6. {% endfor %}
  7. {% endwith %}

过滤闪现消息

  1. {% with error_messages = get_flashed_messages(category_filter=["error"]) %}
  2. {% for error in error_messages %}
  3. {{ error }}
  4. {% endfor %}
  5. {% endwith %}
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注