如何在Django视图中传递文件链接以显示图片?
问题解决:Django视图传递图片路径到HTML img标签
错误原因
你当前的写法{% static '{{ main_figure }}' %}存在核心问题:Django模板引擎不会解析static标签内部单引号包裹的模板变量,它会把{{ main_figure }}当作字面量字符串去查找文件,自然找不到对应图片。
正确写法
1. 修改task1.html的img标签
将原来的代码:
<figure><img src={% static '{{ main_figure }}' %}></figure>
替换为:
<figure><img src="{% static main_figure %}"></figure>
- 直接将模板变量
main_figure传入{% static %}标签,不需要额外的{{ }}包裹 - 用双引号包裹
src属性值,符合HTML语法规范
2. 确认静态文件配置(可选但重要)
确保你的Django项目settings.py中已正确配置静态文件路径:
STATIC_URL = '/static/' # 如果静态文件存放在项目根目录的static文件夹下,添加以下配置 STATICFILES_DIRS = [ BASE_DIR / "static", ]
同时确认你的图片文件实际路径为static/assets/placeholder_img.png,和视图中传递的main_figure值完全匹配。
3. 验证效果
重启Django开发服务器,访问页面后图片即可正常显示,{{ description }}的文本渲染不受影响。
内容的提问来源于stack exchange,提问作者jd_br1
相关产品推荐
相关产品推荐

