テンプレートにデータを渡す
Pythonの変数をレンダリングされたページに渡します
「テンプレートにデータを渡す」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
変化するページ
静的なHTMLでも問題ありませんが、実際のページではユーザーごとに異なるデータを表示します。ビューからテンプレートへデータを渡すことで、ページを動的にできます。
キーワード引数
render_templateにキーワード引数を追加します。渡した各名前が、HTMLファイル内で使える変数になります。
return render_template('hi.html', name='Ada')変数を読み取る
テンプレート内で値を表示するには二重中かっこを使います。ページのレンダリング時に、Flaskが式をその結果に置き換えます。
<h1>Hello, {{ name }}!</h1>式の区切り文字
{{ }}というマーカーは、「ここにこの値を出力する」という意味です。中身が評価され、その結果がページに書き込まれます。
複数の値を渡す
必要なだけ多くのキーワード引数を渡せます。それぞれは独立しており、テンプレート全体で利用できます。
return render_template('p.html', name='Ada', age=36)リストを渡す
値はテキストに限りません。テンプレートにリストや任意のPythonオブジェクトを渡し、マークアップ内で操作できます。
return render_template('t.html', items=['a','b','c'])オブジェクトの属性にアクセスする
Pythonと同じようにドットを使って属性にアクセスできます。テンプレートでも、コードと同じ直感的な方法でオブジェクトのプロパティを読み取れます。
<p>{{ user.email }}</p>辞書の検索
辞書にはドット記法と角かっこ記法のどちらも使えます。Jinja2はまず属性アクセスを試し、次にキー検索へフォールバックします。
{{ data.title }} or {{ data['title'] }}値がなくても安全
変数が未定義でも、Jinja2はエラーを起こさず何も表示しません。そのため、小さなタイプミスでページ全体が壊れるのを防げます。
フィルターを適用する
パイプの後にフィルターを記述すると、値をその場で変換できます。フィルターを使えば、Pythonのビューを複雑にせずテキストを整形できます。
<h1>{{ name|upper }}</h1>ロジックはビューに置く
負荷の高い処理はPythonで行い、準備済みの値を渡します。テンプレートはデータを表示する場所であり、計算する場所ではありません。
クイックチェック
Jinja2テンプレート内でtitleという名前の変数を出力するには、どうすればよいですか?
まとめ
キーワード引数でデータを渡し、二重中かっこで表示できるようになりました。属性へのアクセスやフィルターの適用もできます。順調な進歩です!🚀
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「テンプレートにデータを渡す」レッスンは無料ですか?
はい。「テンプレートにデータを渡す」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「テンプレートにデータを渡す」で何を学びますか?
Pythonの変数をレンダリングされたページに渡します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「テンプレートにデータを渡す」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。