如何将变量从 python Django 传递到 HTML 模板
Posted
技术标签:
【中文标题】如何将变量从 python Django 传递到 HTML 模板【英文标题】:How to pass a variable from python Django to HTML template 【发布时间】:2013-11-27 08:02:36 【问题描述】:我想从 python Django 传递一个变量并在 <img>
标记中使用它。我该怎么做?
这是我的代码。
Python-
render(request, 'dashboard/dashboard.html', "variable_int" : 12)
HTML
<img src="% static "img/icons/vendor/yahoo_weather/variable_int.gif" %" /></td>
我知道我需要在 之间传递它,但我没有得到图像。我该怎么做?
【问题讨论】:
你的代码中 img src 的结果是什么? 为什么要投反对票?没有给出任何合适的解释? @the5fire - 对不起,我没听懂你。图像源的结果是什么意思?如果你说的是<img>
标签的webUI源代码,那么它就是<img src="/static/img/icons/vendor/yahoo_weather/%7B%7Bvariable_int%7D%7D.gif" />
是的,我的意思是 标签的 html 源代码。我同意@Daniel,重点是static
。
【参考方案1】:
问题是django先转换了url,然后你的代码上没有任何变量。
Django 改变这个:
% static "img/icons/vendor/yahoo_weather/variable_int.gif" %
为此:
"/static/img/icons/vendor/yahoo_weather/%7B%7Bvariable_int%7D%7D.gif"
Django首先调用“函数”来获取静态url,并更改里面的所有代码。您可以尝试调用一个变量 STATIC_URL (如果您在 settings.py 中定义了它),该变量将获取静态文件夹的路径,然后将获取变量的值。
试试这个:
<img src=" STATIC_URLimg/icons/vendor/yahoo_weather/variable_int.gif" %" /></td>
在这种情况下,django 应该进行 2 处更改, STATIC_URL 和 variable_int 而不是一个。
【讨论】:
【参考方案2】:您根本没有正确描述问题。问题不在于将它传递给模板,这是一个您显然已经知道如何做的绝对基本问题,而是如何在 static
标记内的字符串中使用它,这是一个完全不同的问题。
答案是,你不能轻易做到。但是你为什么不通过整个路径呢?为什么不"img_path": "img/icons/vendor/yahoo_weather/12.gif"
?
【讨论】:
我试过这个。image_path = "img/icons/vendor/yahoo_weather/" + str(weather_image_code) + ".gif"
render(request, 'dashboard/dashboard.html', "image_path" : image_path)
。在模板里面我写了<img src="% static "image_path" %" />
。而且它不工作
但是你为什么要在模板标签中使用变量语法呢?那是行不通的。只需% static image_path %
。以上是关于如何将变量从 python Django 传递到 HTML 模板的主要内容,如果未能解决你的问题,请参考以下文章
Django,如何将变量从 Django 管理员传递到模板?