PythonのWebフレームワークであるFlaskでは、ユーザーにフィードバックを提供するためのフラッシュメッセージシステムが提供されています。フラッシュメッセージは、ユーザーが何らかの行動を起こしたときに、その行動が正しく処理されたことを知らせたり、失敗したことを知らせるために利用されます。
Flaskのflashメソッド
Flaskのflashメソッドは、メッセージを表示するために使用されます。このメソッドは、一つのFlaskビューでフラッシュメッセージを作成し、それを次のビューで表示することができます。
from flask import Flask, flash, render_template, request
app = Flask(__name__)
app.secret_key = 'secret_key'
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
name = request.form.get('name')
age = request.form.get('age')
if name and age:
flash('登録に成功しました!')
flash('これからよろしくお願いいたします!')
else:
flash('登録に失敗しました。')
flash('名前・年齢を入力してください。')
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
上記のコードでは、ユーザーがフォームを送信したときに、名前と年齢が入力されているかどうかを確認します。両方とも入力されている場合、成功メッセージがフラッシュされます。どちらかが入力されていない場合、失敗メッセージがフラッシュされます。
フラッシュメッセージの表示
フラッシュメッセージは、HTMLテンプレート内でget_flashed_messages
関数を使用して表示することができます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>flash message test</title>
</head>
<body>
<h1>登録画面</h1>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<form method="POST">
<p>名前<br><input type="text" name="name"></p>
<p>年齢<br><input type="text" name="age"></p>
<input type="submit" value="送信">
</form>
</body>
</html>
上記のHTMLテンプレートでは、get_flashed_messages
関数を使用してフラッシュメッセージを取得し、それらをリストとして表示しています。
以上がPython Flaskでのフラッシュメッセージの基本的な使用方法です。この機能を活用することで、ユーザーに対して効果的なフィードバックを提供することができます。.