フィルターとは
Jinja2に用意されている機能。テンプレートで何らかの変数について、ある処理を施してから表示を行いたい(ただし、変数自体は書き換えたくない)という場合に利用できる。
具体的な利用例は次の通り。
- スクリプト例
from flask import Flask, render_template, request app = Flask(__name__) @app.route("/") def index(): message = "This is sample message" return render_template("index.html", message = message)
- HTML例
<body> <h1>Template 例</h1> <p>{{ message | upper }}</p> </body>
- 表示例
<span style="font-size: 150%">Template 例</span> THIS IS SAMPLE MESSAGE
HTML例のpタグの変数「message」については、スクリプト側から値をもらっている。
渡されたmessageは「This is sample message」となっているが、フィルターを利用することで、messageの値は変えずに、表示するときに「THIS IS SAMPLE MESSAGE」というように大文字に変換して表示することができる。
主なフィルター一覧
テキストを大文字/小文字にする
値 | upper 値 | lower
最初の文字だけ大文字に、後を小文字にする
値 | capitalize
絶対値を得る
値 | abs
値が未定義だったときの初期値を指定する
値 | default(初期値)
テキストをエスケープ処理する
値 | escape
テキストから空白文字を除去する
値 | trim
テキストをURLエンコードする
値 | urlencode
テキストを置換する
値 | replace(検索テキスト, 置換テキスト)
オブジェクトをJSONデータとして得る
値 | tojson
リストの最初/最後を取り出す
リスト | first リスト | last
リストを1つのテキストにまとめる
リスト | join リスト | join(区切り文字)
リストの要素数を得る
リスト | length
リストから最小値/最大値を得る
リスト | min リスト | max
リストからランダムに項目を得る
リスト | random
リストを昇順/降順にソートして表示する
リスト | sort リスト | reverse
Python勉強始めました
Python初心者ですが、Webアプリケーションの仕組みを学びたいと思っていました。ネットで色々と調べながらの学習を進めていく中で体系的な知識を身に着けたいと思い、色々と本を探していました。この本では、「Flask」「Bootstrap」「Vue.js」といった各種フレームワークを利用してステップ・バイ・ステップで学習を進めていくことができるので気に入って購入しました。
よろしければぜひどうぞ。
コメント