Flask + Jinja: ベーステンプレート/すべてのテンプレートにデータを渡す 質問する

Flask + Jinja: ベーステンプレート/すべてのテンプレートにデータを渡す 質問する

ベース テンプレート (グローバル フッターのコンテンツ) に必要なデータを返すメソッドがあります。

(1) 変数を基本テンプレート (他のテンプレートが拡張する) に渡すか、(2) 呼び出しで明示的に追加せずに変数をすべてのテンプレートにグローバルに渡すにはどうすればよいでしょうかrender_template

ベストアンサー1

Flask ドキュメントより:Flask のコンテキスト プロセッサ

テンプレートのコンテキストに新しい変数を自動的に挿入するために、Flask にはコンテキスト プロセッサが存在します。コンテキスト プロセッサはテンプレートがレンダリングされる前に実行され、テンプレート コンテキストに新しい値を挿入する機能を持ちます。コンテキスト プロセッサは、辞書を返す関数です。この辞書のキーと値は、アプリ内のすべてのテンプレートのテンプレート コンテキストとマージされます。

ドキュメントからの例:

@app.context_processor
def inject_user():
    return dict(user=g.user)

この例ではg、テンプレートですでにアクセス可能な変数を使用していることに注意してください。

おすすめ記事