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

如何使用Pandas和Flask在多个标签页分别展示不同DataFrame结果表格

问题根因

  • 后端传递参数时将两个表格的HTML内容都存入了safetytable数组,没有单独拆分RAG对应表格的传递变量
  • 前端模板第二个标签页遍历的ragtable变量后端没有传入,第一个标签页遍历了包含两个表格的safetytable,自然两个表格都会显示在第一个标签页

解决方案

方案1:拆分传递变量(更易维护)

第一步:修改Python后端传参逻辑

不要把两个表格都塞到同一个数组里,拆分两个变量分别传递:

return render_template(
    "drugsafety.html", 
    # 第一个标签页对应表格
    safety_table=filtered.to_html(classes='data', index=False),
    # 第二个标签页对应表格
    rag_table=ragfiltered.to_html(classes='data', index=False),
    titles=['na', 'First', 'Second'], 
    value=drugnames
)

第二步:修改HTML模板渲染逻辑

不需要循环遍历,直接把对应表格放到对应标签页即可:

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Drug Safety</a></li>
        <li><a href="#tabs-2">RAG</a></li>
    </ul>
    <div id="tabs-1">
        <div class="table_container">
            {{titles[1]}}
            {{ safety_table|safe }}
        </div>
    </div>
    <div id="tabs-2">
        <div class="table_container">
            {{titles[2]}}
            {{ rag_table|safe }}
        </div>    
    </div>
</div>

方案2:不修改后端代码,仅调整前端取值逻辑

如果不想修改后端传参结构,直接在前端按数组下标取值即可,不用循环遍历:

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Drug Safety</a></li>
        <li><a href="#tabs-2">RAG</a></li>
    </ul>
    <div id="tabs-1">
        <div class="table_container">
            {{titles[1]}}
            {{ safetytable[0]|safe }}
        </div>
    </div>
    <div id="tabs-2">
        <div class="table_container">
            {{titles[2]}}
            {{ safetytable[1]|safe }}
        </div>    
    </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 16:36:04