Django Academy · レッスン

render()とテンプレートコンテキスト

ビューからテンプレートへデータを渡します

レッスン 1/413 ステップ

「render()とテンプレートコンテキスト」はCoddyKit上の無料Django Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDjango Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Django Academyコースには全4レッスンが含まれています。

テンプレートにHTMLを格納する

テンプレートは、簡単なプレースホルダーを含むHTMLファイルです。ブラウザーに届く前に、ビューがその空欄を実際のデータで埋めます。🎨

コンテキストを知る

コンテキストは、ビューがテンプレートに渡すPython辞書です。そのキーが、ページ内で表示できる変数になります。

context = {"name": "Ada", "count": 3}

render()がすべてをつなぐ

render()ショートカットは、リクエスト、テンプレート名、コンテキストを受け取り、完成したHttpResponseを返します。

from django.shortcuts import render

レンダリングする小さなビュー

ここでは、ビューが1つの値をテンプレートに渡しています。render()が読み込みとレスポンスの処理を1行で行っていることに注目してください。

def hello(request):
    return render(request, "hello.html", {"name": "Ada"})

変数を表示する

テンプレート内でコンテキストの値を表示するには、二重の波括弧を使います。Djangoは{{ name }}を、ビューから渡された値に置き換えます。

<h1>Hello, {{ name }}!</h1>

テンプレートの配置場所

Djangoは通常、各アプリに1つずつあるtemplatesフォルダーからテンプレートを探します。そこに置くことで、ローダーが名前で各ファイルを見つけられます。

myapp/templates/myapp/hello.html

名前空間で衝突を避ける

アプリ名のサブフォルダーの下にテンプレートを配置することを名前空間といいます。これにより、2つのアプリが同じファイル名を取り合うのを防げます。

templates/blog/post.html

テンプレートでのドットアクセス

テンプレート言語では、辞書のキー、オブジェクトの属性、リストの項目など、すべてをドットで表します。いずれもvalue.keyのように記述します。

<p>{{ user.email }}</p>

存在しないキーは静かに処理される

コンテキスト変数が存在しない場合、Djangoはエラーを起こさず空文字列を表示します。このサイレントな失敗により、小さな不足でページ全体が壊れるのを防げます。

複数の値を渡す

コンテキストには、文字列、数値、リスト、オブジェクトなど、好きな数のキーを混在させて格納できます。テンプレートはそれぞれをキーで読み取ります。

return render(request, "page.html", {"posts": posts, "total": 5})

テンプレートのロジックは最小限にする

負荷の高い処理はページではなくビューで行います。テンプレートは主にデータを表示し、表示とロジックを無理なく分離する役割です。

クイックチェック

ビューからページへデータがどのように渡るか考えてみてください。

まとめ:ビューからページへ

render()によって、リクエスト、テンプレート、コンテキスト辞書が1つのレスポンスにまとめられ、{{ }}でそれらの値を表示できることを学びました。次はタグとフィルターです。

無料で開始

AI チューターと学ぶ Python — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「render()とテンプレートコンテキスト」レッスンは無料ですか?

はい。「render()とテンプレートコンテキスト」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Django Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Django Academyコースには全4レッスンが含まれています。

「render()とテンプレートコンテキスト」で何を学びますか?

ビューからテンプレートへデータを渡します ブラウザで直接実行するハンズオンコードでDjango Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Django Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDjango Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「render()とテンプレートコンテキスト」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDjango Academyレッスンでコードを書いて実行できますか?

はい。すべてのDjango Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. render()とテンプレートコンテキスト
  2. テンプレートタグとフィルター
  3. extendsとblockによるテンプレート継承
  4. urlタグとstaticタグ
← Django Academyに戻る