Flask框架HTML模板中url_for如何动态插入item.id生成图片路径
问题原因
你当前的写法里'img/uploads/item.id.jpg'是固定字符串,Jinja模板不会解析字符串内部的item.id为变量,只会将其当做普通文本处理,因此生成的路径不符合预期。
解决方案
你可以通过Jinja的字符串拼接能力动态生成filename参数的值,以下是两种常用实现方式:
- 使用
~字符串拼接运算符(Jinja内置,会自动将数字等非字符串类型转为字符串,适配id为数字的场景)
<img class="card-img-top" src="{{ url_for('static', filename='img/uploads/' ~ item.id ~ '.jpg') }}" alt="img">
- 使用Python字符串format方法
<img class="card-img-top" src="{{ url_for('static', filename='img/uploads/{}.jpg'.format(item.id)) }}" alt="img">
注意事项
请确保对应的图片文件确实存放在项目静态资源目录的img/uploads/路径下,且item.id的实际值与图片文件名完全匹配。
内容的提问来源于stack exchange,提问作者puranjan
相关产品推荐
相关产品推荐

