Djangoのコンテキスト(Context)は、ビュー(View)からテンプレート(Template)にデータを渡すために使用される辞書(dictionary)のことです。テンプレートは、このコンテキストに含まれるデータを使用して動的にHTMLを生成します。
コンテキストの主な役割は以下の通りです:
1. ビューからテンプレートにデータを渡す:ビューで取得または処理したデータ(データベースからのクエリセット、計算結果など)をテンプレートに渡すことで、動的なHTMLの生成を可能にします。
2. テンプレートタグやフィルターで使用:テンプレート内で{% if %}、{% for %}などのテンプレートタグやフィルターを使ってデータを表示したり、条件分岐やループ処理を行ったりする際に、コンテキストのデータを参照します。
3. 複数のビューで共通のデータを扱う:複数のビューで同じデータを使用する場合、コンテキストプロセッサ(Context Processor)を使用して、全てのテンプレートに自動的にデータを追加することができます。
コンテキストの使用例:
```python
from django.shortcuts import render
def my_view(request):
context = {
'title': 'My Page',
'items': ['Item 1', 'Item 2', 'Item 3'],
}
return render(request, 'my_template.html', context)
```
上記の例では、my_view関数でコンテキスト辞書を作成し、titleとitemsというキーに値を設定しています。そして、render関数の第3引数にこのコンテキストを渡すことで、テンプレートmy_template.htmlがこれらのデータにアクセスできるようになります。
テンプレートでは、{{ title }}や{% for item in items %}のように、コンテキストのキーを使ってデータを表示したり、処理したりすることができます。