jinja2のline statements
が便利。基本的にはflaskの下で使っています。
line statements?
行(line)をステートメントとして指定できる記述方法。
簡単にいうと、
{% for item in items %}
<div>{{ item }}</div>
{% endfor %}
上の記述が、
# for item in items:
<div>{{ item }}</div>
# endfor
これでも書けるということ。
flaskでの設定方法
jinja_options
を利用します。line_statement_prefix
で、行をステートメントとして指定する文字を指定して、line_comment_prefix
でコメントアウトの文字列を指定できます。これによりline statements
の中でもコメントアウトできます。
app = Flask(__name__)
app.jinja_options = {
# ...,
'line_statement_prefix': '#',
'line_comment_prefix': '##'
}
line statements
のドキュメントはこちら: Template Designer Documentation — Jinja Documentation (3.1.x)
flaskとjinja2、app.jinja_options
などの詳細は、下の記事にて。
jinja2での設定方法
jinja2.Environment
で指定すれば良さそうです。こちらではほとんど使ったことがないので、該当ドキュメント付近のリンクを貼っておきます: API — Jinja Documentation (3.1.x)
便利なところ
個人的に便利だと思う点を挙げておきます。
- {% %}だとブロックを意識してしまうのでインデントが気になる
- line statementsだとforやifの末尾に:を付けてもいい。python風に書ける
- コメントを書くのが楽。{##}は面倒
上から順にありがたいなあと思って使っています。for item in items:
と書けるのはとても直感的で使いやすいです。
インデントはループ外の兄弟要素とのインデントの差が気になる時はとても助かります。{% %}
を使うとインデントしないとソースの見栄えが変で、かといって出力結果のインデントはズレてしまうのでなんとかしたいと思っていました。#
なら個人的にはズレは気にならないです。
おわり
ドキュメントを眺めるのもいいものですね。英語だから若干読むのに疲れやすいのが難点。
また使いたいなと思ったものは記録していきたい所存です。
以上です。
コメント