Django のテンプレート エンジンと Flask の Jinja2 を深く理解するには、具体的なコード例が必要です
はじめに:
Django と Flask は、Python でよく使用され、人気のある 2 つです。 Web フレームワーク。どちらも、動的 Web ページのレンダリングを処理する強力なテンプレート エンジンを提供します。 Django は独自のテンプレート エンジンを使用しますが、Flask は Jinja2 を使用します。この記事では、Django のテンプレート エンジンと Flask の Jinja2 を詳しく説明し、それらの使用法と違いを示す具体的なコード例をいくつか示します。
1. Django テンプレート エンジン
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
view 関数で、render
関数を使用してデータを作成できます。テンプレートに渡されてレンダリングされます。たとえば、「name」という名前の変数をテンプレートに渡すことができます。
from django.shortcuts import render def hello(request): name = "John" return render(request, 'hello.html', {'name': name})
{{ name }}
のように、二重中括弧を使用して変数名を囲みます。 {% for item in items %} {% endfor %}
などのタグを含めます。 {{ name|title }}
は、name 変数を大文字の形式に変換することを意味します。 <!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
次に、他のテンプレートで extends
キーワードを使用して、以下に示すように、基本テンプレートを継承および拡張します:
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
2. Flask の Jinja2 の作成と使用
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
view 関数で、render_template
関数を使用してテンプレートをレンダリングできます。そしてデータを渡します。たとえば、「name」という名前の変数をテンプレートに渡すことができます。
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def hello(): name = "John" return render_template('hello.html', name=name)
{{ name }}
などの変数名を含めるには、二重中括弧も使用します。 {% for item in items %} {% endfor %}
などの制御構造を組み込みます。 {{ name|title }}
は、name 変数を大文字形式に変換することを意味します。 。 <!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
次に、他のテンプレートで extends
キーワードを使用します。以下に示すような基本テンプレート:
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
結論:
Django のテンプレート エンジンと Flask の Jinja2 はどちらも、動的な Web ページ レンダリングを作成するための強力な機能を提供します。この 2 つは構文と使用法に若干の違いがありますが、全体的には非常に似ています。実際の開発では、個人の好みやプロジェクトのニーズに基づいていずれかを選択して使用できます。
上記は、Django のテンプレート エンジンと Flask の Jinja2 についての詳細な理解であり、具体的なコード例を通じて、それらの使用法と違いをより明確に理解できます。この記事が、これら 2 つのテンプレート エンジンを理解して使用するための助けになれば幸いです。
以上がDjango のテンプレート エンジンと Flask の Jinja2 の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。