【问题标题】:How to pass a variable from python Django to HTML template如何将变量从 python Django 传递到 HTML 模板
【发布时间】: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

标签: python html django jinja2


【解决方案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_URL}}img/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 %}
    猜你喜欢
    • 2013-12-16
    • 2020-08-09
    • 2021-10-15
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    • 2021-07-17
    • 1970-01-01
    • 2015-05-23
    相关资源
    最近更新 更多