コンテキストとコンテキスト プロセッサの概念を理解しようとしています。
- コンテキストとは何ですか? また、なぜそれを使用するのですか?
- コンテキストは、テンプレートで使用するために使用できる必要のある値ですか?
- コンテキストとコンテキスト プロセッサは同じですか?
ベストアンサー1
{{ myvar1 }}
Django テンプレートを使用すると、最適化のため、テンプレートは一度だけコンパイルされ、将来の使用のために保存されます。テンプレートには、やのように、変数名を二重中括弧で囲むことができます{{ myvar2 }}
。
あコンテクスト変数名を鍵そしてその価値観として価値したがって、上記のテンプレートのコンテキストが次のようになっている場合{myvar1: 101, myvar2: 102}
、このコンテキストをテンプレートのレンダリングメソッドに渡すと、テンプレート内では が に、が に{{ myvar1 }}
置き換えられます。これは単純な例ですが、実際にはコンテキストオブジェクトは101
{{ myvar2 }}
102
コンテクストテンプレートがレンダリングされる場所です。
ContextProcessor については、これは少し高度な概念です。settings.py
ファイル内に、オブジェクトを受け取ってHttpRequest
辞書 (上記の Context オブジェクトに類似) を返す Context Processor をいくつかリストすることができます。Context Processor によって返される辞書 (コンテキスト) は、Django によって、ユーザーから渡されたコンテキストにマージされます。
コンテキスト プロセッサの使用例としては、テンプレート内に特定の変数を常に挿入したい場合が挙げられます (たとえば、ユーザーの場所が候補になる場合があります)。各ビューに挿入するコードを記述する代わりに、コンテキスト プロセッサを記述して、 の設定に追加するだけTEMPLATE_CONTEXT_PROCESSORS
ですsettings.py
。
これが意味を成すといいのですが。クラスを受講していただきありがとうございます。