1. 程式人生 > >flask 通過flash函式 實現 閃現資訊

flask 通過flash函式 實現 閃現資訊

這裡是基於 MVC jinjia2 模版

其實現在vue這麼簡單和強大...有空寫模版不如學個vue.

------------------------------------------------------------分隔線--------------------------------------------------------

閃現資訊就是 只展示一次的資料/引數.

應用:

比如進入首頁只刷一次的廣告.

 

先提供程式碼:

>>>>>>>>>>>>>flash.py>>>>>>>>>>>>>>>

# coding:utf-8


from flask import Flask,flash,render_template


app = Flask(__name__)

app.config["SECRET_KEY"] = "hskghsaklg"

flag = True

@app.route("/index")
def index():
    global flag
    if flag:
        # 用flash儲存要在模板中展示的閃現資訊
        flash("hello world 0")
        flash("hello world 1")
        flash("hello world 2")
        flash("hello world 3")
        flash("hello world 4")
        flag = False
    return render_template("index.html")

if __name__ == '__main__':
    app.run()

 

>>>>>>>>>>>>>>>>>>index.html>>>>>>>>>>>>>>>>>>>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% for msg in get_flashed_messages() %}
    <p>{{ msg }}</p>
    {% endfor %}
</body>
</html>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

要使用閃現的話

首先你得在檢視函式當中存一下>>究竟都有哪些引數是需要進行展示的.

 

1. 先引入一個函式 flash,用於儲存你究竟都有哪些資訊需要展示

from flask import flash 

 

2. 使用flash儲存,它實際上是儲存在哪裡呢?它實際上是暫時幫我們儲存在session裡面.

所以:

app.config["SECRET_KEY"] = "hskghsaklg"

 

3. 使用方法

在Flask中存:

flash("要展示的閃現資訊")

相對應的在html中取:

get_flashed_messages方法:

返回之前在Flask中通過 flash() 傳入的資訊列表。把字串物件表示的訊息加入到一個訊息佇列中,然後通過呼叫get_flashed_messages() 方法取出。

 

4. flash的原理清楚了以後.要實現閃現資訊就簡單了.

定義一個全域性變數flag =True

在檢視函式內展現一次資訊後改為False,通過if判斷就完成了閃現.

@app.route("/index")
def index():
    global flag
    if flag:
        flash("hello world 0")
        flash("hello world 1")
        flash("hello world 2")
        flash("hello world 3")
        flash("hello world 4")
        flag = False
    return render_template("index.html")