見出し画像

{% if %}で条件付き表示を行う

今日は、『つくってマスターPython』の6-3 “Jinja2テンプレートの活用”で学んだことをアウトプットします。

{% if %}で条件付き表示を行う

状況に応じて表示をON/OFFするのに用いられるのが、{% if %}という構文です。

テンプレートファイルindex.htmlに以下のように記述をします。ここでは、{% if %}という記述を用意し、変数flgの値がTrueならばその後の部分を、Falseならば{% else %}以降の部分を表示するようにしてあります。
<!DOCTYPE html>
<html lang=ja dir="ltr">
 <head>
   <meta charset="utf-8">
   <title>{{title}}</title>
   <style>
     p { foont-size: 20pt}
     .ok { font-weight: bold; color: blue;}
     .ng { text-decoration: underline; color: red;}
   </style>
 </head>
 <body>
   <h1>{{title}}</h1>
   {% if flg %}
   <p class="ok">現在は、利用できます。</p>
   {% else %}
   <p class="ng">※現在、利用できません。</p>
   {% endif %}
 </body>
</html>

index.htmlテンプレートを読み込み表示するスクリプトは以下のようになります。

from flask import Flask, render_template

app = Flask("helloapp")

@app.route("/")
def hello():
   return render_template('index.html',
                           title='Hello',
                           flg=True)

if __name__ == '__main__':
   app.debug = True
   app.run(host='127.0.0.1')

これを実行し、http://localhost:5000/にアクセスすると、以下のように表示されます。

スクリーンショット 2021-03-12 191934

また、スクリプトのflg=Trueの値をFalseに変更すると、以下のように表示が変わります。

スクリーンショット 2021-03-12 192130


サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪