この記事では、フラスコのテンプレートに関する包括的なガイドを提供し、その重要性、利点、実用的なアプリケーションをカバーしています。 テンプレートの作成とレンダリング、テンプレートの継承とレイアウトの使用、変数と制御構造の操作、フォームとユーザーの入力の取り扱い、組み込みおよびカスタムフィルターの使用、静的ファイルとメディアの管理、高度なテンプレートテクニックの実装を検討します。 あなたが初心者であろうと経験豊富なフラスコの開発者であろうと、この詳細な探索は、動的で視覚的に魅力的なWebインターフェイスを構築するための理解とスキルを高めます。 (注:フラスコの基本的な理解が想定されています。)
なぜフラスコテンプレートを使用するのか? フラスコテンプレートは、十分に構造化され、保守可能で再利用可能なコードに重要です。 プレゼンテーション(UI)をアプリケーションロジックから分離することにより、バックエンドコードを変更せずにUIの更新を簡素化します。この分離は、開発者とデザイナーのコラボレーションを改善します。主な利点は次のとおりです
コードの再利用性:、など)をサポートします。 。
に焦点を当てますアプリケーション構造の例:templates
.html
.svg
単純な.csv
テンプレート:.html
をレンダリングします
<code>my_app/ ├── app.py └── templates/ └── index.html</code>
テンプレートの継承とレイアウトindex.html
<!DOCTYPE html> <html> <head> <title>Index</title> </head> <body> <h1>Welcome</h1> <p>This is the index page.</p> </body> </html>
render_template()
ベーステンプレート(
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run()
子テンプレート(
):
base.html
テンプレート変数と制御構造
<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <nav></nav> <div class="content"> {% block content %}{% endblock %} </div> </body> </html>
のキーワード引数またはコンテキスト辞書を使用して、フラスコからテンプレートにデータを渡します。 home.html
。を使用してテンプレート内の変数にアクセスします
{% extends 'base.html' %} {% block title %}Home - My Website{% endblock %} {% block content %} <h1>Welcome to My Website</h1> <p>This is the home page content.</p> {% endblock %}
render_template()
:{{ variable_name }}
<code>my_app/ ├── app.py └── templates/ └── index.html</code>
制御構造(if/else、for loopsの場合):
<!DOCTYPE html> <html> <head> <title>Index</title> </head> <body> <h1>Welcome</h1> <p>This is the index page.</p> </body> </html>
テンプレートのコンテキストとグローバル変数
テンプレートコンテキストには、テンプレートで使用可能な変数が含まれています。フラスコは、request
、session
、config
、url_for()
、およびg
(グローバル変数の場合)を提供します。 リクエスト間でデータを共有するには、g
を使用してください:
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.run()
テンプレートフォームとユーザー入力
htmlフォームまたはwtformsライブラリを使用して、堅牢なフォーム処理を行います。 wtformsは検証を提供し、フォーム作成を簡素化します
ビルトインおよびカスタムフィルター
Jinja2は、組み込みのフィルターを提供しています(例:、upper
、lower
)。機能を拡張するためのカスタムフィルターを作成します:capitalize
<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <nav></nav> <div class="content"> {% block content %}{% endblock %} </div> </body> </html>
静的ファイルとメディアを使用して作業します
ディレクトリに静的ファイル(CSS、JS、画像)を保存します。 static
を使用して、テンプレート内のこれらのファイルのURLを生成します。
url_for('static', filename='...')
{% include 'partial.html' %}
{% macro my_macro(arg) %}{% endmacro %}
{% debug %}
結論マスタリングフラスコテンプレートは、堅牢で保守可能なWebアプリケーションを構築するための鍵です。 議論された手法を効果的に利用することにより、動的でユーザーフレンドリーで視覚的に魅力的なWebインターフェイスを作成できます。 詳細と高度な機能については、FlaskとJinja2のドキュメントを参照してください。
以上がフラスコテンプレートに深く潜りますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。