admin管理员组文章数量:1642344
1、什么是seesion
session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。
2、配置SECRET_KEY
因为flask的session是通过加密之后放到了cookie中。所以有加密就有密钥用于解密,所以,只要用到了flask的session模块就一定要配置“SECRET_KEY”这个全局宏。一般设置为24位的字符。配置方法一般有两种。
(1)新建一个config.py的文件配置secret_key
config.py
SECRET_KEY = 'XXXXXXXXX'
然后在主运行文件里面添加config文件里面的内容。
main.py
# encoding: utf-8
from flask import Flask,session
import config
app = Flask(__name__)
(2)直接在主运行文件里面配置。配置config的时候也是和操作字典是一样的 。
main.py
from flask import Flask,session
import os
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24) # 随机产生24位的字符串作为SECRET_KEY
产生方法:引入OS模块中的产生一个24位的随机字符串的函数,这种方法有个缺点,就是服务器每次启动之后这个SECRET_KEY的值都会变。
3、操作session–如同操作字典一样
Flask中的session是通过from flask import session。然后添加值key和value进去即可。
(1)设置session
from flask import Flask,session
import os
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
# 设置session
@app.route('/')
def set():
session['username'] = 'asd' # 设置“字典”键值对
return 'success'
if __name__ == '__main__':
app.run()
(2)读取session
因为session就像字典一样所以,操作它的时候有两种方法:
0x01 result = session[‘key’] :如果内容不存在,将会报异常
0x02 result = session.get(‘key’) :如果内容不存在,将返回None
所以,使用第二种方法获取session较好。
# 读取session
@app.route('/get')
def get():
# session['username'] = 'asd'
# print(session.get('username'))
# print(session['username'])
return session.get('username')
(3)删除session
# 删除session
@app.route('/delete')
def delete():
session['username'] = 'asd'
print(session.get('username'))
session.pop('username')
print(session.get('username'))
return 'success'
(4)清除session
# 清除session
@app.route('/clear')
def clear():
session['username'] = 'asd'
print(session.get('username'))
session.clear
print(session.get('username'))
return 'success'
4、设置session的过期时间
如果没有指定session的过期时间,那么默认是浏览器关闭后就自动结束。
下面的方法可以用来配置session的过期时间
(1)如果设置了session的permanent属性为True,那么过期时间是31天。
session.permanent = True #一个月有效期
(2)一种更先进的配置有效期的方法:(比如配置7天有效)
- 引入包:from datetime import timedelta;
- 配置有效期限:app.config[‘PERMANENT_SESSION_LIFETIME’] = timedelta(days=7) # 配置7天有效
- 设置:session.permanent = True;
from flask import Flask,session
from datetime import timedelta
import os
app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7) # 配置7天有效
# 设置session
@app.route('/')
def set():
session['username'] = 'asd'
session.permanent = True
return 'success'
版权声明:本文标题:python--Flask学习(三)Flask中的session操作 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1729337913a1197223.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论