IT技術早わかりくん

IT分野の解説記事を発信します。

Djangoのコンテキスト(Context)とは

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 %}のように、コンテキストのキーを使ってデータを表示したり、処理したりすることができます。