Flask Academy · レッスン

render_templateとtemplatesフォルダー

文字列ではなくHTMLファイルを返します

レッスン 1/413 ステップ

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

文字列からページへ

これまでのルートは単純な文字列を返していました。実際のページにはHTMLが必要で、Flaskではrender_templateを使って完全なHTMLファイルをきれいに提供できます。

render_templateの動作

render_templateはHTMLファイルを見つけ、テンプレートエンジンで処理し、完成したページをレスポンスボディとして返します。

from flask import render_template

@app.route('/')
def home():
    return render_template('index.html')

templatesフォルダー

Flaskはアプリファイルの隣にあるtemplatesという名前のフォルダーからHTMLを探します。そこにindex.htmlを置けば、Flaskが自動的に見つけてくれます。📁

myapp/
  app.py
  templates/
    index.html

名前が固定されている理由

templatesという名前は推測ではなく規約です。Flaskが探す場所を把握しているため、render_template内にフォルダーのパスを書く必要はありません。

ファイル名だけを指定する

完全なパスではなくファイル名だけを渡します。Flaskがtemplatesフォルダーのパスを自動的に連結するため、コードを短く、移植しやすく保てます。

return render_template('about.html')

templates内のサブフォルダー

サブフォルダーでページを分類し、スラッシュで区切って参照できます。プロジェクトが大きくなっても整理された状態を保てます。

return render_template('users/profile.html')

最小限のテンプレート

テンプレートの本質は通常のHTMLです。最も簡単なテンプレートは、特別な構文をまだ使わない通常のページです。

<!doctype html>
<title>Home</title>
<h1>Welcome</h1>

テンプレートはレンダリングされる

単純なファイルもレンダリングされます。FlaskがまずJinja2で処理するためです。この処理によって、後から動的な要素を追加できます。

結果を返す

render_templateはHTMLの文字列を返すので、それをビューから返します。Flaskが適切なコンテンツタイプを持つ正しいレスポンスに包みます。

@app.route('/')
def home():
    return render_template('index.html')

TemplateNotFoundエラー

Flaskがファイルを見つけられないと、TemplateNotFoundエラーが発生します。スペルと、ファイルが本当にtemplates内にあるかを確認してください。

ロジックとマークアップを分離する

テンプレートによってHTMLをPythonから分離できます。ビューはロジックを、テンプレートは表示を担当するため、どちらも格段に読みやすくなります。

クイックチェック

FlaskはデフォルトでHTMLファイルをどこに置くことを想定していますか?

まとめ

render_templateはファイル名でtemplatesフォルダー内のHTMLを提供するため、ロジックはPythonに、マークアップはファイルに置けることを学びました。よくできました!🎉

無料で開始

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

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

コース
30
レッスン
120

よくある質問

「render_templateとtemplatesフォルダー」レッスンは無料ですか?

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

「render_templateとtemplatesフォルダー」で何を学びますか?

文字列ではなくHTMLファイルを返します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「render_templateとtemplatesフォルダー」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. render_templateとtemplatesフォルダー
  2. テンプレートにデータを渡す
  3. Jinja2のループと条件分岐
  4. 自動エスケープとsafeフィルター
← Flask Academyに戻る