您的位置:首页 > 其它

Flask框架快速入门学习(4)

2018-05-28 10:59 316 查看

Flask框架之flash和get_flashed_messages

flash的作用是将一个消息压入到一个buf中,比如登陆成功显示的“登陆成功”,我们可以在别的页面读取这个值并显示出来。下面我们来一次简单的演示;

# -*- encoding=UTF-8
from flask import Flask,flash,get_flashed_messages,redirect

app = Flask(__name__)
app.secret_key='aiko'

@app.route('/')
def index():
res = ''
for msg in get_flashed_messages():
res =res+msg+'<br>'
return res

@app.route('/login')
def login():
flash('登陆成功')
return redirect('/')

if __name__ == '__main__':
app.run(debug=True)
我们需要用到flash和get_flashed_messages,flash是用来压入数据的,而get_flashed_messages是用来读取数据的。我们设置一个login的路劲,当用户进入后提示登陆成功,然后页面跳转到首页,首页里将之前压入的数据取出并显示。这里注意的是需要在一开始设置app.secret,因此这个是标识用户的一种方式,浏览器需要知道是哪个用户在使用登陆。

效果图:


当我们输入127.0.0.1:5000/login的时候,页面发生了跳转,并且显示了 登陆成功的字样。


接着我们探讨一下其实flash还有一个参数,category,这个适用于数据的过滤的作用,也可以理解为标签,我们将程序修改一下,代码如下:

# -*- encoding=UTF-8
from flask import Flask,flash,get_flashed_messages,redirect

app = Flask(__name__)
app.secret_key='aiko'

@app.route('/')
def index():
res = ''
for msg,categore in get_flashed_messages(with_categories=True):
res =res + categore + msg +'<br>'
return res

@app.route('/login')
def login():
flash('登陆成功',category='aiko')
return redirect('/')

if __name__ == '__main__':
app.run(debug=True)
我们在flash那儿加入了一个category='aiko'的参数,然后我们又在get_flashed_messages那个将category设置为true,并且将值显示在res中,结果显示:


在原来的“登陆成功”后面的确出现了"aiko"的字样。

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: