Jinja2 未定義なテンプレート変数が消えてしまう問題
特定のテンプレート変数が未定義な render() をすると、
当該のテンプレート変数が空欄に置換されてしまう現象を阻止したいと思っています。
未定義なテンプレート変数に対しては、何も処理を行わないのが理想です。
ひとつの文字列に対して複数回の render() しようとして、この問題に衝突しました。
発生している困った現象
html
1<h1 class="{{sitaNameClass}}">{{siteName}}</h1> 2↓ 3<h1 class="headerH1"></h1> 4↓ 5<h1 class="headerH1"></h1>
発生してほしい理想の現象
html
1<h1 class="{{sitaNameClass}}">{{siteName}}</h1> 2↓ 3<h1 class="headerH1">{{siteName}}</h1> 4↓ 5<h1 class="headerH1">サイト名</h1>
やっている処理
python
1html = '<h1 class="{{sitaNameClass}}">{{siteName}}</h1>' 2tmplDictDict = { 3 'classDict': {'sitaNameClass': 'headerH1'}, 4 'stringDict': {'siteName': 'サイト名'}, 5} 6for iKey in tmplDictDict: 7 html = Template(html).render(tmplDictDict[iKey])
解決策は jinja2 の仕様を利用したテクニックでなくとも問題ありません。
上記のコードは例です。実際には render() は3回、4回と何度も行われます。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/16 11:36