You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask的Jinja模板中遍历Flash消息传递的列表

解决Flask中Flash列表后遍历显示单个元素的问题

方案一:后端逐个Flash列表元素

修改Python路由代码,循环列表中的每个元素,分别调用flash()函数:

@app.route("/result")
def test():    
    my_list = ["item1","item2","item3","item4"]    
    for item in my_list:
        flash(item)    
    return render_template("temp.html")

此时原有HTML模板代码无需修改,get_flashed_messages()会返回包含所有单个元素的列表,遍历后就能逐个显示每个item。

方案二:前端模板中遍历Flash传递的列表

如果不想修改后端代码,可调整Jinja模板,先取出Flash传递的列表对象,再遍历它:

{% with messages=get_flashed_messages() %}
    {% if messages %}
        <ul>
            {% for item in messages[0] %}
                <li>{{ item }}</li>
            {% endfor %}
        </ul>
    {% endif %}
{% endwith %}

这里messages[0]就是通过flash(my_list)传递的列表,直接遍历它就能得到每个元素。

原有代码问题说明

flash()函数会把传入的参数作为单个消息存入消息列表,所以flash(my_list)之后,get_flashed_messages()返回的是嵌套列表[["item1","item2","item3","item4"]]。原有模板遍历外层列表,自然会把整个内层列表作为一个元素输出。

内容的提问来源于stack exchange,提问作者Moeez Raza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:32:44