2017-11-13 17 views
0

私には変数を埋め込むためのHTMLタグがjinja2にあります。Jinja2はHTML文字列を安全なものとしてマークします

Format.html:

{% set color="red" %} 
{% set tag="<img src='{{ color }}.png' />" %} 
This is red {{ tag|safe }}. 

私は安全とtagをマークすると、それは変数colorをレンダリングしません。私がそれを安全なものとしてレンダリングしないと、HTMLのimgタグが消され、イメージを埋め込むことができません。イメージを正しく埋め込むにはどうすればいいですか? imgタグはコード全体で再利用可能な変数として必要なので、私はimgタグを書きたくありません。

答えて

2

別のテンプレートタグ内に{{ }}を使用できないという問題があります。ただし、このようなテンプレートタグ内の文字列と変数colorを連結することができます

方法#1:~記号を使用します。 Jinja2のdocsから、変数を文字列に変換して連結します。

{% set tag = "<img src='" ~ color ~ ".png' />" %} 

OR

方法#2:

{% set tag = "<img src='%s.png' />"|format(color) %} 
formatフィルタを使用します
関連する問題