前回で、ツールとして使うための最低限の機能の実装は終わりました。ここからは補足機能の追加としてflushメッセージの追加をしてみましょう。
flaskのflashメッセージ
flashメッセージとは、処理が終わったりエラーが発生した際にその旨を通知するメッセージのことです。flaskにはデフォルトでflashメッセージ機能がありますのでそれを使ってみましょう。
テンプレートの修正
まずは、テンプレートにflashメッセージを挿入する部分を追加しましょう。base.htmlのcontainer部分を以下の通り修正してください。(block bodyの前に追加します。)
<div class="container">
{% for message in get_flashed_messages() %}
<div class="alert alert-success">{{ message }}</div>
{% endfor %}
{% block body %}{% endblock %}
</div>
get_flashed_messagesメソッドを使用することにより、セッションに格納されたメッセージを取得することができます。
各処理の修正
run.pyで、flaskのflash機能をインポートします。
from flask import Flask, request, g, redirect, url_for, render_template, flash
また、更新系の処理終了後にflashメッセージを追加するように修正しましょう。
# run.py
@app.route('/analysis', methods=['POST'])
def analysis():
""" 分析実行処理 """
title = request.form['title']
data = request.form['data']
img = models.create_scatter(data)
con = get_db()
pk = models.insert(con, title, data, img)
flash('登録処理が完了しました。') # ←ここを追記
return redirect(url_for('view', pk=pk))
@app.route('/delete/<pk>', methods=['POST'])
def delete(pk):
""" 結果削除処理 """
con = get_db()
models.delete(con, pk)
flash('削除処理が完了しました。') # ←ここを追記
return redirect(url_for('index'))
動作確認
登録、削除処理後に画面上部にメッセージが表示されたら成功です。

