在Jinja模板中与其他变量一起制作新的多行字符串变量

时间:2019-03-14 08:04:20

标签: flask jinja2

我有一些冗长的属性标签,需要在几个属性上重复。对于此示例,我们假设它是一些data-attributes,所以

<tag1 data-attr1="{{value1}}" data-attr2="{{value2}}" ... data-attrN="{{valueN}}">
<tag2 data-attr1="{{value1}}" data-attr2="{{value2}}" ... data-attrN="{{valueN}}">
<tagX data-attr1="{{value1}}" data-attr2="{{value2}}" ... data-attrN="{{valueN}}">

我想重写它,以免一遍又一遍地重复相同的字符串。我正在尝试下面的语法,但是它导致一个空字符串。

{% set data_attributes = '
 data-attr1="{{value1}}" data-attr2="{{value2}}" 
 ... data-attrN="{{valueN}}"'%}
<tag1 {{data_attributes}}>
<tag2 {{data_attributes}}>
<tagX {{data_attributes}}>

结果HTML

 <tag 1 >
 <tag 2 >
 <tag 3 >

1 个答案:

答案 0 :(得分:0)

我有一个长字符串,也想把它包起来。这对我毫无问题。

{% set error_message = 'Really long string that I wanted to wrap to 
                        multiple lines to help meet pep8 column width
                        error checking.' %}
<p><strong>
  {{ error_message }}
</strong></p>

不过,在您的情况下,我可能会改为这样做。

  <div data-attr1="{{ variable_here }}"
       data-attr2="apples"
       data-attr3="oranges">
    Stuff
  </div>

呈现的HTML将是:

<div data-attr1="bananas" data-attr2="apples" data-attr3="oranges">
    Stuff
</div>