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

Flask中如何将图片名作为字符串传入HTML时移除最后4个字符

解决方法

方法一:后端处理(推荐)

在app.py的select函数中提前处理文件名,剥离后缀后传递给模板,这样模板可以直接使用处理好的名称:

修改后的select函数代码:

@app.route('/select.html')
def select():
    image_dir = os.path.join(app.static_folder, "images")
    imagelist = []
    for filename in os.listdir(image_dir):
        # 用os.path.splitext剥离文件后缀,返回(名称, 后缀)元组
        name_without_ext = os.path.splitext(filename)[0]
        imagelist.append( (filename, name_without_ext) )
    return render_template("select.html", imagelist=imagelist)

对应修改模板中的循环逻辑,分别使用原文件名(生成图片路径)和处理后的名称(显示用):

{% for image, image_name in imagelist %}
<div class="centre">
  <button type="submit">
  <img class="center" src="{{ url_for('static', filename='images/' + image) }}">
  </img>
  <p>{{ image_name }}</p>
  </button>
</div>
{% endfor %}

方法二:前端模板直接处理

如果不想改动后端代码,可直接在Jinja2模板中用字符串处理逻辑去掉后缀:
将模板里的<p>{{image}}</p>替换为:

<p>{{ image.split('.')[0] }}</p>

这种方式更通用,能兼容.png等其他后缀的图片;如果确定只有.jpg后缀,也可以用替换写法:

<p>{{ image.replace('.jpg', '') }}</p>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 04:52:37