テンプレートは、ビジュアルを再利用するのに役立ちます。 すべてのWebアプリで、ビジュアルが再利用されます。 これは、ビジネスロジックとプレゼンテーションロジックを分割するのに役立ちます。 アプリコードをグラフィックデザインコードと混在させたくありません。
分析アプリを想像してみてください。 すべてのページで同じナビゲーションとフッターが必要です。 内容は異なる場合がありますが、一般的なデザインは同じです。 それはテンプレートで行われます。
関連コース: Python Flask:Flaskを使用してWebアプリを作成する
テンプレートの例
最初に実行したいのは、テンプレート用のディレクトリを作成することです。 以下のコマンドを使用して、ターミナルからこれを実行できます。 まだ行っていない場合は、アプリを作成してください。 プロジェクトディレクトリの名前が「app」であるとすると、
(venv) $ mkdir app/templates |
単一のテンプレートは単なるファイルです。 各テンプレートにはHTMLコードが含まれています。これはWebの標準言語です。
フラスコテンプレート変数
ファイルindex.htmlを作成しましょう
<html> |
そのほとんどは、Webの標準であるHTMLタグ(<記号と>記号の間)です。
だからそれらは何ですか {{
そして }}
シンボル?
これは、WebページにPython変数を表示する方法です。 これらは、表示される変数のプレースホルダーです。
このテンプレートには、タイトルとユーザー名の2つの変数を渡すことができます。
テンプレートレンダリング
知っておくべき重要なことの1つは、テンプレートを使用してビジネスロジックをプレゼンテーションロジックから分離することです。 これにより、ソフトウェアの保守性、拡張性、および移植性が向上します。
変数はPythonコードから渡すことができます。 Pythonはテンプレートをレンダリングする必要があるため、そのためのモジュールをインポートします。
from flask import render_template |
元のコードを変更します。
|
テンプレートをレンダリングして変数を渡すものに:
|
次に、アプリを起動します。
次に、ターミナルにテキストが表示されます。
* Serving Flask app "app" (lazy loading) |
そして、端末に表示されているURLをWebブラウザで開きます。
render_template
上記の例では、関数を呼び出しました render_template()
。 なぜこのメソッドを呼び出して、すぐにhtmlデータを返さないのですか?
フラスコはという名前の言語にバンドルされています Jinja2。 これにより、変数を含めたり、ループを作成したり、テンプレートにifステートメントを追加したりすることができます。
次のような変数を含める方法はすでに見ました title
そして username
上記の例では。 では、ループとifステートメントをどのように含めますか?
フラスコテンプレートの場合
テンプレートにifステートメントを含めることができます。 Pythonで使用するのと同じ演算子を使用できます(==、>、<、> =、<=、)。 のような節 else
または elif
使用することもできます。
このコードでは、入力変数のユーザー名によって出力が異なります。 ユーザー名は、Pythonコード(ビジネスロジック)でテンプレート(プレゼンテーションロジック)に渡されます。
<html> |
ループ用フラスコテンプレート
ユーザーのリストなど、大量のデータがある場合は、forループを使用してデータを反復処理する必要があります。 Pythonコードを次のように変更します。
|
コードにはリスト(ユーザー)が含まれています。 そのリストはrender_template関数に渡されます。 テンプレートでは、forループを使用してリストを反復処理できます。
<html> |
コードのタグ {%
そして %}
使用されています。
変数を表示するには、タグを記述します {{
そして }}
。
Hope this helps!
Source link