乙個好的應用和使用者介面都需要良好的反饋。如果使用者得不到足夠的反饋,那麼應用最終會被使用者唾棄。
flask 的閃現系統提供了乙個良好的反饋方式。
閃現系統的基本工作方式是:
一般我們 結合布局模板來使用閃現系統。
注意,瀏覽器會限制 cookie 的大小,有時候網路服 務器也會。這樣如果訊息比會話 cookie 大的話,那麼會導致訊息閃現靜默失敗。
以下是乙個完整的示例:
from flask import flask, flash, redirect, render_template, \
request, url_for
defindex
():return render_template('index.html')
deflogin
(): error = none
if request.method == 'post':
if request.form['username'] != 'admin'
or \
request.form['password'] != 'secret':
error = 'invalid credentials'
else:
flash('you were successfully logged in')
return redirect(url_for('index'))
return render_template('login.html', error=error)
上面py檔案比如儲存為flashtest.py
以下是實現閃現的layout.html
模板:
注,html模板預設放在專案的templates目錄下。
class=flashes>
}li>
ul>
以下是繼承自layout.html
的index.html
模板:
do you want to
href="
}">log in?a>
以下是同樣繼承自layout.html
的login.html
模板:
class=error>
error:strong>
}
執行應用
>python -m flask run
訪問預設的127.0.0.1:5000
可見閃現效果:
閃現訊息還可以指定類別,如果沒有指定,那麼預設的類別為'message'
。不同的 類別可以給使用者提供更好的反饋。例如錯誤訊息可以使用紅色背景。(樣式要自己根據class=類別額外去寫好css)
使用flash()
函式可以指定訊息的類別:
flash(u'invalid password provided', 'error')
注: 這一行是新增在error= 'invalid credentials'
這一行之後:
deflogin
(): error = none
if request.method == 'post':
if request.form['username'] != 'admin'
or \
request.form['password'] != 'secret':
error= 'invalid credentials'
flash(u'invalid password provided', category='error')
else:
flash('you were successfully logged in')
return redirect(url_for('index'))
return render_template('login.html',error=error)
模板中的get_flashed_messages()
函式也應當返回類別,顯示訊息的迴圈 也要略作改變:
class=flashes>
class="}">}li>
ul>
上例展示如何根據類別渲染訊息,還可以給訊息加上字首,如}:
。
class=flashes>
class="}">
}:strong>}li>
ul>
注:雖然可以拿到類別,但是要依據類別來寫li標籤的樣式,讓錯誤資訊顯示是紅色背景還要自己額外去寫好樣式哦。
你可以視情況通過傳遞乙個類別列表來過濾get_flashed_messages()
的 結果。這個功能有助於在不同位置顯示不同類別的訊息。
class="alert-message block-message error">
和class="close"
href="#">×a>
}li>
ul>
div>
flask.flash()
get_flashed_messages()
官網說明如下:從官網裡可以看出,
flash()
函式:而
get_flashed_messages()
兩個預設引數,第乙個是類別控制開關,預設是false。文:鐵樂與貓
2018-9-6
flask-訊息佇列
flask閃現訊息
乙個好的應用和使用者介面都需要良好的反饋。如果使用者得不到足夠的反饋,那麼應用最終 會被使用者唾棄。flask 的閃現系統提供了乙個良好的反饋方式。閃現系統的基本工作方式 是 在且只在下乙個請求中訪問上乙個請求結束時記錄的訊息。一般我們結合布局模板來 使用閃現系統。以下是乙個完整的示例 後台from...
python flask flash訊息閃現
很多人都不用flash這個元件,其實特別好用。好的應用和使用者介面的重點是回饋。如果使用者沒有得到足夠的反饋,他們可能最終會對您的應用產生不好的評價。flask 提供了乙個非常簡單的方法來使用閃現系統向使用者反饋資訊。閃現系統使得在乙個請求結束的時候記錄乙個資訊,然後在且僅僅在下乙個請求中訪問這個資...
Flask的訊息提示異常處理
一 訊息提示 flask提供訊息閃現機制,方便在應用中訊息提示 首先匯入flash方法,再對secret key進行賦值,以對訊息加密 然後定義乙個路由,使用flash方法,並返回模板 coding utf8 from flask import flask,flash,render template...