36

テンプレートに存在しない変数を渡すと、jinja2 が例外を発生させる方法はありますか?

PS: これは、変数がテンプレートに存在するが渡されない場合に例外を発生させることとは異なります (または反対です)。このために、「undefined=StrictUndefined」を使用します

4

3 に答える 3

42

jinja2.Environment をロードするときは、「undefined」パラメーターを「jinja2.StrictUndefined」に設定します。例:

env = jinja2.Environment(loader=<someloader>, undefined=jinja2.StrictUndefined)

レンダー例外をキャッチして調べて、何が欠けていたかを確認できます

編集あなたの質問全体を読んでいただければ助かります。:)

于 2012-07-03T16:47:48.280 に答える
15

多分これはあなたを助けるかもしれません https://jinja.palletsprojects.com/en/2.11.x/api/#the-meta-api

>>> from jinja2 import Environment, meta
>>> env = Environment()
>>> ast = env.parse('{% set foo = 42 %}{{ bar + foo }}')
>>> meta.find_undeclared_variables(ast)
set(['bar'])
于 2011-05-31T03:24:21.293 に答える