Flaskのrender_templateで常に特定の変数を渡したい


PythonのFlaskのrender_templateで引数に変数と変数名を渡すとJinja2テンプレートで使用することができる。

しかし、特定のデータをすべてのrender_templateで使いたいときいちいち書くのも面倒なので、一括で渡せる設定方法がFlaskには用意されている。

hoge = "hoge"
common_data = {"hoge": hoge}

@app.context_processor
def inject_data():
    return common_data

@app.context_processorの中の関数のReturnに辞書型の変数を渡してやるとキーの値を使用してJinjaテンプレートで使うことができる。