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

Flask中使用Jinja模板渲染网页时返回数据为None是什么原因?

问题核心原因

  • 你当前的TSN_PIC函数最终返回的是plt.show(),没有返回分类结果数据,传给模板的result是空值
  • 模板中你写的变量是{{results}},但后端传的参数名是result,变量名不匹配
  • 你当前是在循环中重复覆盖result变量,没有把所有分类结果整理成结构化数据传递

修改步骤

1. 修改cv_acp中的TSN_PIC函数

def TSN_PIC(img):
    img = image.imread(img)
 
    fig, ax = plt.subplots(figsize=(18, 18))
    ax.imshow(img.asnumpy())

    transform_fn = transforms.Compose([
    video.VideoCenterCrop(size=224),
    video.VideoToTensor(),
    video.VideoNormalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])
    img_list = transform_fn([img.asnumpy()])
    net = get_model('vgg16_ucf101', nclass=101, pretrained=True)
    pred = net(nd.array(img_list[0]).expand_dims(axis=0))
    classes = net.classes
    topK = 5
    ind = nd.topk(pred, k=topK)[0].astype('int')
    print('The input video frame is classified to be')
    # 新增:定义结果列表存储所有分类结果
    result_list = []
    for i in range(topK):
        class_name = classes[ind[i].asscalar()]
        confidence = nd.softmax(pred)[0][ind[i]].asscalar()*100
        # 把结果以元组形式存入列表
        result_list.append((class_name, round(confidence,2)))
        print('\t%s - %.2f'%(class_name, confidence)) 
    # 注意:无GUI的服务器环境运行plt.show()会报错,不需要可以注释掉
    # plt.show()
    # 返回结果列表而不是plt.show()
    return result_list

2. app.py无需改动,保持现在传result=result的逻辑即可

3. 修改cv_acp_TSN_PIC.html模板中的结果渲染部分

把原来的

{% block content %}
<div class="container">
    <p>{{results}}</p>
</div>
{% endblock %}

替换为:

<div class="container">
  <h3>分类结果</h3>
  <table border="1" cellpadding="8" cellspacing="0">
    <thead>
      <tr>
        <th>动作分类</th>
        <th>置信度(%)</th>
      </tr>
    </thead>
    <tbody>
      {% for class_name, confidence in result %}
      <tr>
        <td>{{ class_name }}</td>
        <td>{{ confidence }}</td>
      </tr>
      {% endfor %}
    </tbody>
  </table>
</div>

注意事项

如果你的运行环境是没有图形界面的服务器,需要添加以下代码关闭matplotlib的GUI后端,避免报错:

import matplotlib
matplotlib.use('Agg')

把这段代码加在cv_acp文件最开头导入matplotlib的位置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:27:03