iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
Software Development

都是 P 開頭的程式語言,你是在 py 啥啦系列 第 9

[09] [Flask 快速上手筆記] 08. 提示訊息與 Log 紀錄

Log

Flask 使用標 Python 內建的 logging
所有與 Flask 相關的消息都用 app.logger 來記錄,其名稱與 app.name 相同

@app.route('/login', methods=['POST'])
def login():
    user = get_user(request.form['username'])

    if user.check_password(request.form['password']):
        login_user(user)
        app.logger.info('%s logged in successfully', user.username)
        return redirect(url_for('index'))
    else:
        app.logger.info('%s failed to log in', user.username)
        abort(401)

如果沒有設定 log,在 python 中預設的 log 級別是warning
而低於設定級別的 log 內容是不可見的

可以參考文件:Flask logging

提示訊息

如果你沒有前後端分離,而是需要自己使用模板撰寫畫面
可以透過flash()記錄一條訊息,並只在下一個 request 可以存取

取得變數messages後就可以在模板內直接使用
並且因為 flashed messages 可以儲存很多,所以可以用迴圈方式一條一條列出

<!doctype html>
<title>My Application</title>
{% with messages = get_flashed_messages() %}
  {% if messages %}
    <ul class=flashes>
    {% for message in messages %}
      <li>{{ message }}</li>
    {% endfor %}
    </ul>
  {% endif %}
{% endwith %}

進而加強使用者體驗
但若是這個訊息若是很多筆,比cookie還大的話則會失效!

參考文件:Message Flashing


上一篇
[08] [Flask 快速上手筆記] 07. 重新導向x狀態碼xJSON
下一篇
[10] [Flask 快速上手筆記] 09.心得
系列文
都是 P 開頭的程式語言,你是在 py 啥啦30

尚未有邦友留言

立即登入留言