FlaskでJinja2を使ってViewのテンプレートを作る方法。

スポンサーリンク

ヘイ、ガイズ! Flaskシリーズのもう一つのチュートリアルへようこそ。

今回は、Flask の Web フレームワークのテンプレートについて、その使い方を学びます。

スポンサーリンク

テンプレートとは?

テンプレートとは、Webサイトのコンテンツを表示するためのHTML、CSS、JSのファイルです。

テンプレートは、Webページを美化し、それらを提示できるようにします。

したがって、すべての Web サイトはフロントエンド(テンプレートで構成)とバックエンド(Flask フレームワークのコードとアプリケーション)で構成されています。

Web Templating System

Webテンプレートシステムは、テンプレートエンジン、データソース、テンプレートプロセッサーから構成される。

また、多くの場合、ウェブサイトはDBのデータをそのウェブページに表示します。

Web Templating Systemはこれを行う。

ファイル/DBのデータとHTML(テンプレート言語を使用)を組み合わせて、ウェブページに表示するのです。

ウェブテンプレートシステムの具体的な動作は、以下の通りです。

  1. DBから必要なデータを抽出する
  2. テンプレートエンジンでデータをHTMLファイル(テンプレート言語使用)に結合します。
  3. テンプレートプロセッサはそれを処理し、結果としてテンプレートファイルを出力します。

FlaskはデフォルトのテンプレートエンジンとしてJinja2を使っています。

次のセクションでさらに詳しく見ていきます。

Jinga Templating Language (JTL) (ジンガ テンプレーティング ランゲージ)

テンプレートエンジンは、HTML ファイルにデータを追加するためのテンプレート言語を提供します。

Jinja2 は Django の Templates をモデルにした、python 用のモダンでデザイナーフレンドリーなテンプレート言語です。

これから、このテンプレート言語の構文を見ていきます。

4つのタイプで構成されています。

| タイプ|シンタックス
| — | — |
| 1) ステートメントタグ|{% %}: {% if….else %} です。

– {% endif %}: {% endif %}で終わる。

| 2) 変数タグ|{{ }}: {{変数}} |
| 3) コメント用タグ|{#……#}: {#コメント……パラ #}。

Jinja2 Templating Language## アプリケーションにテンプレートを追加する

Flask はアプリケーションファイルの横にある templates というフォルダに格納されているテンプレートを探します。

次のセクションに進む前に、そのフォルダを作成してください。

render_template('<template_file_name.html>', variables = <values> )
from flask import Flask, render_template
 
app = Flask(__name__)
 
@app.route('/blogs/<int:id>')
def blogs(id):
    return render_template('blog.html', number=id)
 
app.run(host='localhost', port=5000)

1. Render_template() 関数

Flask アプリケーションは、render_template() 関数を使用してテンプレートをレンダリングします。

構文は

<html>
    <body>
        <h1>This is a Blog Webpage</h1>
        <h2>Blog {{number}}</h1>
        <h3>Test Blog</h1>
    </body>
</html>

2. Flaskアプリのコーディング

flask main ファイルにコードを追加します (flask 入門を参照)。

Templates Folder
Templates Folder

テンプレート blog.html を作成します。

Image 15
Contents of the templates folder

jinja2 言語の変数タグを使用していることに注意してください。

3. Flaskアプリケーションの実行

サーバーを起動し、以下のURLを叩きます。

Blog 2
Blog 2

出来上がり

まとめ

今回の記事は以上です。

今回は Flask Templates についてでした。

よりよく理解するために、上記の例を自分でやってみましょう。

タイトルとURLをコピーしました