如何将变量从python Django传递给HTML模板

时间:2013-11-14 10:38:36

标签: python html django jinja2

我想从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>

我知道我需要在{{}}之间传递它,但我没有得到图像。我该怎么办?

2 个答案:

答案 0 :(得分:3)

您根本没有正确描述问题。问题不是将它传递给模板,这是一个绝对基本的问题,你显然已经知道该怎么做,但是如何在static标签内的字符串中使用它,这是一个完全不同的问题。

答案是,你不能轻易。但是你为什么不通过整条道路呢?为什么不{"img_path": "img/icons/vendor/yahoo_weather/12.gif"}

答案 1 :(得分:3)

问题是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_URL}}img/icons/vendor/yahoo_weather/{{variable_int}}.gif" %}" /></td>

在这种情况下,django应该进行2次更改,{{STATIC_URL}}和{{variable_int}},而不只是一次。