我有一个flask应用程序,在该应用程序中,我希望根据操作闪烁不同的警报消息。
这是我的第一封邮件,我在其中检查电子邮件是否与我的正则表达式模式匹配:
reciver = str(email)
if not re.match(r"[^@]+@[^@]+\.[^@]+", reciver):
flash("Please enter a valid email address", 'error')
return render_template("about.html")
Run Code Online (Sandbox Code Playgroud)
这是第二条消息,如果成功发送一条消息,则会显示该消息:
flash('Message sent succesfully', 'succes')
return render_template("about.html")
Run Code Online (Sandbox Code Playgroud)
这是我的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 %}
Run Code Online (Sandbox Code Playgroud)
我该如何对第一条消息发出警报危险,对第二条消息发出警报成功,是否可以使用某种条件?
您可以使用以下模式来指定函数的category参数。flash
:param 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 %}
Run Code Online (Sandbox Code Playgroud)
通过添加categoryclass属性,您可以将特殊颜色与某些CSS规则相关联,例如:
.alert.success {
background-color: green;
}
.alert.error {
background-color: red;
}
Run Code Online (Sandbox Code Playgroud)
flash('Message sent successfully', 'success')
flash("Please enter a valid email address", 'error')
Run Code Online (Sandbox Code Playgroud)
这些调用将生成:
<div class="alert success"> Message sent successfully </div>
<div class="alert error"> Please enter a valid email address </div>
Run Code Online (Sandbox Code Playgroud)
官方文档:http : //flask.pocoo.org/docs/1.0/patterns/flashing/#flashing-with-categories
使用烧瓶1.0.2时,这种类似但略有不同的方法对我有效-我认为稍微简单一些:
flash('This is an error message in red', 'danger')
flash('This is an informational message in blue', 'info')
Run Code Online (Sandbox Code Playgroud)
在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 %}
Run Code Online (Sandbox Code Playgroud)
这样,我不需要定义任何CSS,只需使用默认Flask发行版中已经存在的内容即可。