重定向、session、Flash消息都比较简单(内容也比较少),所以这里就放在一起写了。
重定向
flask通过redirect()函数,来实现响应重定向,redirect()函数的参数是重定向的URL。
定义一个视图函数,重定向到‘ /aaa ’地址地址。
@app.route('/index')
def index():
return redirect('/aaa')
@app.route('/aaa')
def aaa():
return "响应重定向后的视图函数"
在浏览器中访问http://127.0.0.1:5000/index地址,会重定向到aaa视图中。
session
session 是基于cookie实现, 保存在服务端的键值对。session中保存的内容全局都可以使用。
在使用session时,需要使用secret_key进行加密签名。
使用session —— session的使用和字典差不多。
app.secret_key = "secret from"
@app.route('/sessionDemo')
def sessionDemo():
# 设置session
session['name'] = "张三"
# 获取session中的值
name = session.get("name")
print(name)
# 删除session
del session['name']
# 清除session中所有数据
session.clear
return "session基本使用"
运行结果如下:
Flash消息
flash消息常用于需要提示给用户的消息,如登录修改密码等。通过flash()函数发送的消息会存储在session对象中,所以我们使用时也需要使用secret_key进行加密签名。
通过flash()函数发送一条消息,然后返回demo.html模块
@app.route('/flashDemo')
def flashDemo():
flash("flash消息")
return render_template("demo.html")
demo.html模块接收flash消息
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% for message in get_flashed_messages() %}
{{ message }}
{% endfor %}
</body>
</html>
使用get_flashed_messages函数获取flash消息传递的值。
运行效果如下