python 框架Flask学习笔记之session

Posted 匿名道友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 框架Flask学习笔记之session相关的知识,希望对你有一定的参考价值。

Session的定义

Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。

对session的操作如下

 1 from flask import Flask,session
 2 import os
 3 from datetime import timedelta
 4 app = Flask(__name__)
 5 app.config[SECRET_KEY]=os.urandom(24)   #设置为24位的字符,每次运行服务器都是不同的,所以服务器启动一次上次的session就清除。
 6 app.config[PERMANENT_SESSION_LIFETIME]=timedelta(days=7) #设置session的保存时间。
 7 #添加数据到session
 8 #操作的时候更操作字典是一样的
 9 #secret_key:----------盐,为了混淆加密。
10 
11 
12 @app.route(/)
13 def hello_world():
14     session.permanent=True  #默认session的时间持续31天
15     session[username] = xxx
16 
17     return Hello World!
18 
19 #获取session
20 @app.route(/get/)
21 def get():
22     return  session.get(username)
23 
24 #删除session
25 @app.route(/delete/)
26 def delete():
27     print(session.get(username))
28     session.pop(username)
29     print(session.get(username))
30     return delete
31 #清楚session
32 @app.route(/clear/)
33 def clear():
34     print(session.get(username))
35     session.clear()
36     print(session.get(username))
37     return clear
38 
39 if __name__ == __main__:
40     app.run(debug=True)

SECRET_KEY

secret_key设置成os.urandom(24)这样的写法再项目中不合适,因为没次启动服务器这个值都会改变,所以所有保存的session都失效。现在只是学习阶段,所以就可以随机产生。

 

以上是关于python 框架Flask学习笔记之session的主要内容,如果未能解决你的问题,请参考以下文章

python web开发之flask框架学习 加载模版

Python Flask框架学习笔记14

Flask 学习笔记

flask学习笔记1

Python学习笔记5-利用flask来mock接口

师傅带徒弟学:Python Web之Flask框架-关东升-专题视频课程