render_templateとtemplatesフォルダー
文字列ではなくHTMLファイルを返します
「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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- render_templateとtemplatesフォルダー
- テンプレートにデータを渡す
- Jinja2のループと条件分岐
- 自動エスケープとsafeフィルター