我在我的项目中使用了flask-bootstrap,剩下的唯一怪癖是每个flash消息都显示在他们自己的块中,所以他们"堆积"当页面显示3条消息时非常快。无论我给他们什么类别,总是橙色。有没有办法覆盖该行为并将Flash消息组合在一个使用该类别的正确颜色的块中?
答案 0 :(得分:2)
这是我用来显示Flash消息的代码,我使用手动添加的twitter bootstrap
html/css/js
文件。要启用类别,您需要代码中的第二行。我有{% if category == 'message' %}
,因为默认的Flash类别称为'message'
,我想将其显示为警告。您还必须确保您的类别名称与css
classes
相匹配。 classes
在基本bootstrap theme中是'成功','信息','警告'和'危险'。
<div>
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
{% if category == 'message' %}
<div class="alert alert-warning" role="alert">
{% else %}
<div class="alert alert-{{ category }}" role="alert">
{% endif %}
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
</div>
要让它们全部显示在一个块中,您只需在div中移动模板中的for循环。
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
<div class="alert alert-{{ messages.0.0 }}" role="alert">
{% for category, message in messages %}
{{ message }} </br>
{% endfor %}
</div>
{% endif %}
{% endwith %}
message.0.0
在哪里获取第一条消息的类别。您还可以查看flash examples中的最后一个示例,了解如何将不同的邮件类别组合在一起。