url_for中的flask jinja宏变量

时间:2012-10-25 14:50:31

标签: python flask jinja2

我有一个带有看起来像

的jinja宏的烧瓶应用程序
{% macro icon(site, title="") %}
    <img src="{{ url_for('static', filename="icons/XXX.png") }}" alt="{{ title }}" class="img-icon">
{% endmacro %}

我需要做的是让文件名等于传递给宏的site变量。因此,它应该具有值site

而不是XXX

有办法吗?

2 个答案:

答案 0 :(得分:9)

这应该有效:

{% macro icon(site, title="") %}
    <img src="{{ url_for('static', filename='icons/%s.png' % site) }}" alt="{{ title }}" class="img-icon">
{% endmacro %}

答案 1 :(得分:4)

自2.6(pep-3101)以来,python中字符串格式化的推荐方法是使用str.format()

{% macro icon(site, title="") %}
    <img src="{{ url_for('static', filename='icons/{0}.png'.format(site)) }}" alt="{{ title }}" class="img-icon">
{% endmacro %}