Flask訊息閃現

2021-08-27 16:10:12 字數 3099 閱讀 9687

乙個好的應用和使用者介面都需要良好的反饋。如果使用者得不到足夠的反饋,那麼應用最終會被使用者唾棄。

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.htmlindex.html模板:

do you want to 

href="

}">log in?a>

以下是同樣繼承自layout.htmllogin.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...