flask-session 使用
一. session 基本的使用
导入
from flask import session
session 基本操作
# 1. 设置值
session['name'] = name
# 2. 获取值
name = session.get('name')
# 3. 删除值
session.pop('name')
# 4. 清除所有
session.clear()
二. session 存入redis中
1. 基本使用
1. flask内置的session,把数据加密后保存到浏览器中
2. 我们重写open_session和save_session,把数据保存到服务端的 redis 中
1.1 方式一:
安装 flask-session
pip3 install flask-session
保存到redis中
from flask import Flask
# 导入需要的模块
from flask_session.sessions import RedisSessionInterface
from redis import Redis
app = Flask(__name__)
# 连接redis
conn = Redis(host='127.0.0.1', port=6379)
# 重写方法
app.session_interface = RedisSessionInterface(redis=conn, key_prefix='lqz-')
@app.route('/')
def index():
session['name'] = 'lqz'
return '首页'
if __name__ == "__main__":
app.run(host='127.0.0.1', port=8000)
1.2 方式二:
1. 其原理: Session(app)--->就是根据配置文件,生成 RedisSessionInterface 对象,赋值给app.session_interface
安装 flask-session
pip3 install flask-session
保存到redis中
'''----------------------------------settings.py 文件---------------------------------------'''
from redis import Redis
DEBUG = True
SECRET_KEY = 'KSNDKJVNSJKDVDV'
# 使用存储位置类型, 此选择为 redis,
SESSION_TYPE = 'redis'
# 设置连接地址及端口
SESSION_REDIS = Redis(host='127.0.0.1', port=6379)
'''----------------------------------app.py 文件---------------------------------------'''
from flask import Flask, session
from flask_session import Session
app = Flask(__name__)
# 导入配置文件
app.config.from_pyfile('./settings.py')
# 使用 Session 包裹一下
Session(app)
@app.route('/')
def index():
session['name'] = 'lqz'
return '首页'
if __name__ == "__main__":
app.run(host='127.0.0.1', port=8000)
2. 让cookie,关闭浏览器就失效
1. expires 设置为 None
res = make_response('hello')
res.set_cookie('name', 'lqz', expires=None)
2. session设置的cookie,关闭浏览器失效
2.1 使用方式一:permanent 设置为 None
app.session_interface = RedisSessionInterface(redis=conn, key_prefix='lqz',permanent=False)
2.2 使用方式二:配置文件加入
SESSION_PERMANENT=False

浙公网安备 33010602011771号