render()とテンプレートコンテキスト
ビューからテンプレートへデータを渡します
「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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- render()とテンプレートコンテキスト
- テンプレートタグとフィルター
- extendsとblockによるテンプレート継承
- urlタグとstaticタグ