ホームページ >ウェブフロントエンド >htmlチュートリアル >Flask:template_html/css_WEB-ITnose
Python 内で HTML を生成するのは楽しいものではなく、非常に扱いにくい場合があります。アプリケーションのセキュリティを確保するには、HTML エスケープを自分で行う必要があるためです。したがって、Flask は Jinja2 テンプレート エンジン を自動的に構成します。
render_template() メソッドはテンプレートをレンダリングできます。テンプレート名と必要なパラメータをパラメータとして指定し、テンプレートの変数に渡すだけです。
例: template.py
from flask import render_template@app.route('/hello/')@app.route('/hello/<name>')def hello(name=None): return render_template('hello.html', name=name)
ファイル構造は次のとおりです:
/template.py/templates /hello.html
Flask は templates フォルダーで hello.html テンプレートを探します。
したがって、アプリケーションがモジュールの場合、テンプレート フォルダー (テンプレート) はモジュールの隣にある必要があり、パッケージの場合はパッケージ内にある必要があります。
ケース 1:モジュール:
/application.py/templates /hello.html
ケース 2: パッケージ: (init .py がある)
/application /__init__.py /templates /hello.html
template.py
を実行する
公式 Web サイト
開発者ドキュメント
テンプレート 変数または式が含まれます。どちらも は、テンプレートが評価されるときに値 に置き換えられます。テンプレートには、テンプレートのロジックを制御するためのタグもあります。テンプレートの構文は、Django と Python から大きく影響を受けています。
例:
rrree
3行: nameがtrueの場合、Hello + nameパラメータを表示
5行: それ以外の場合、hello worldを表示
7行: 終了判定
もっと見る行
<!doctype html><title>Hello from Flask</title>{% if name %} <h1>Hello {{ name }}!</h1>{% else %} <h1>Hello World!</h1>{% endif %}
単一行
{# ... #}
テンプレート エンジンは空白を処理せず、空白 (スペース、タブ、改行など) がそのまま返されます。
ブロック (for ラベル、コメント、変数式など) の先頭または末尾にマイナス記号 (-) を配置して、ブロックの前後の空白を削除します。ラベルの間に空白があってはなりません。とマイナス記号
有効:
## 为行注释前缀
無効:
{%- if foo -%}...{% endif %}
# を使用して行をステートメントとしてマークします。 次の 2 つのコードは同等です。
{% - if foo - %}...{% endif %}
最も簡単な方法は、変数区切り文字 ( {{ ) で変数式の出力を使用することです:
<ul># for item in seq <li>{{ item }}</li># endfor</ul><ul>{% for item in seq %} <li>{{ item }}</li>{% endfor %}</ul>
大きな段落には raw を使用します:
{{ '{{' }}
Variable
りーザ特別なプレースホルダーは、テンプレートをレンダリングするときにデータ プロバイダーから値を取得する必要があることをテンプレート エンジンに指示します。
Jinja2 は、リスト、dic、オブジェクトなどの一部の複雑なデータ型も含め、すべての変数の型を識別できます。変数の属性にアクセスするには、または [] を使用できます。
{% raw %} <ul> {% for item in seq %} <li>{{ item }}</li> {% endfor %} </ul>{% endraw %}
変数はパイプを介してフィルターによって変更できます。
大文字にする
値の最初の文字は大文字に変換され、残りは小文字になります
lower
値はすべて小文字に変換されます
upper
すべての値を大文字に変換します値内の各単語を大文字にする | |
---|---|
間のスペースを削除する | |
レンダリングする前に HTML タグを削除する |