我有一个flask应用程序,我想根据操作闪烁不同的警报消息。
这是我的第一封邮件,我在其中检查电子邮件是否匹配我的正则表达式模式:
reciver = str(email)
if not re.match(r"[^@]+@[^@]+\.[^@]+", reciver):
flash("Please enter a valid email address", 'error')
return render_template("about.html")
这是第二条消息,如果成功发送一条消息,则会显示该消息:
flash('Message sent succesfully', 'succes')
return render_template("about.html")
这是我的HTML代码:
<h1 class="mb-5"> Enter your message, and i will get back to you as soon as possible</h1>
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<div class="alert alert-success">
<li>{{ message }} </li>
</div>
{% endfor %}
{% endif %}
{% endwith %}
{% block body %}{% endblock %}
我该如何对第一条消息发出警报危险,对第二条消息发出警报成功,是否可以使用某种条件?
答案 0 :(得分:4)
您可以使用以下模式来指定flash
function的category
参数。
:参数类别:消息的类别。以下值 建议:
'message'
用于任何形式的消息,'error'
表示错误,'info'
表示信息 消息和'warning'
表示警告。但是任何 字符串的种类可以用作类别。
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert {{ category }}"> {{ message|capitalize }} </div>
{% endfor %}
{% endif %}
{% endwith %}
通过将category
放在class属性中,您可以将特殊颜色与某些CSS规则相关联,例如:
.alert.succes {
background-color: green;
}
.alert.error {
background-color: red;
}
flash('Message sent succesfully', 'succes')
flash("Please enter a valid email address", 'error')
这些调用将生成:
<div class="alert succes"> Message sent succesfully </div>
<div class="alert error"> Please enter a valid email address </div>
官方文档:http://flask.pocoo.org/docs/1.0/patterns/flashing/#flashing-with-categories
答案 1 :(得分:2)
对于烧瓶1.0.2,这种类似但略有不同的方法对我有用-我认为稍微简单一点:
flash('This is an error message in red', 'danger')
flash('This is an informational message in blue', 'info')
在Flask HTML模板中:
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ category }}" role="alert"> {{ message }}</div>
{% endfor %}
{% endif %}
{% endwith %}
这样,我无需定义任何CSS,只需使用默认Flask发行版中已经存在的内容即可。