Flask ページの最小限の例に従って、コンテキスト プロセッサを構築しようとしています。
context_procesor.py
def inflect_this():
def inflectorize(number, word):
return "{} {}".format(number, inflectorizor.plural(word, number))
return dict(inflectorize=inflectorize)
app.py (アプリ ファクトリ内)
from context_processor import inflect_this
app.context_processor(inflect_this)
数字に基づいて単語を変化させる以前の変化関数を使用して、単純に、ジンジャ フィルターとして既に持っていますが、コンテキスト プロセッサとして実行できるかどうかを確認したかったのです。
ここのページの下部にある例を考えると: http://flask.pocoo.org/docs/templating/、これは機能するはずですが、機能しません。私は得る:
jinja2.exceptions.UndefinedError UndefinedError: 'inflectorize' is undefined
何が起こっているのかを理解するのに十分ではありません。誰が何が悪いのか教えてもらえますか?
編集:
app.jinja_env.globals.update(inflectorize=inflectorize)
関数を追加するように機能し、app.context_processor がとにかく jinja_env.globals に中継するメソッドでメソッドをラップするよりもオーバーヘッドが少ないようです。