如何用烧瓶中的不同消息闪烁成功和危险。

bai*_*win 5 python flask

我有一个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)

我该如何对第一条消息发出警报危险,对第二条消息发出警报成功,是否可以使用某种条件?

PRM*_*reu 8

您可以使用以下模式来指定函数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


Ed *_*d B 6

使用烧瓶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发行版中已经存在的内容即可。