如何将变量从 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 - 对不起,我没听懂你。图像源的结果是什么意思?如果你说的是&lt;img&gt;标签的webUI源代码,那么它就是&lt;img src="/static/img/icons/vendor/yahoo_weather/%7B%7Bvariable_int%7D%7D.gif" /&gt; 是的,我的意思是 标签的 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)。在模板里面我写了&lt;img src="% static "image_path" %" /&gt;。而且它不工作 但是你为什么要在模板标签中使用变量语法呢?那是行不通的。只需% static image_path %

以上是关于如何将变量从 python Django 传递到 HTML 模板的主要内容,如果未能解决你的问题,请参考以下文章

Django,如何将变量从 Django 管理员传递到模板?

如何从 Django 视图将变量传递给 SCSS

将HTML表单变量传递给Django中的python函数

将变量从视图传递到表单 Django

如何将 jquery datepicker 从模板传递到 python Django 中查看?

如何将值从视图传递到不可编辑的字段django python