flask内置session
#设置:session['username'] = 'xxx'
#删除:session.pop('username', None)
flask-session
#安装:pip3 install flask-session
使用
#两种方式
#方式一
from flask import Flask,session
from flask_session import RedisSessionInterface
import redis
app = Flask(__name__)
#conn=redis.Redis(host='127.0.0.1',port=6379)
#app.session_interface=RedisSessionInterface(conn,key_prefix='pdun')
#use_signer是否对key签名
#key_prefix是前缀,加密后开头的前缀
@app.route('/')
def hello_world():
session['name']='pdun'
return 'Hello World!'
if __name__ == '__main__':
app.run()
#方式二
from redis import Redis
from flask.ext.session import Session
from flask import Flask,session
from flask_session import RedisSessionInterface
import redis
app = Flask(__name__)
#app.config['SESSION_TYPE'] = 'redis'
#app.config['SESSION_REDIS'] = Redis(host='192.168.0.94',port='6379')
#Session(app)
@app.route('/')
def hello_world():
session['name']='pdun'
return 'Hello World!'
if __name__ == '__main__':
app.run()
#问题:设置cookie时,如何设定关闭浏览器则cookie失效
在cookie中设置
response.set_cookie('k','v',exipre=None)#这样设置即可
#在session中设置
app.session_interface=RedisSessionInterface(conn,key_prefix='pdun',permanent=False)
#RedisSessionInterface的参数permanent,默认是True,改为False就行
#但是、一般不用,我们一般都设置超时时间,多长时间后失效
#问题:cookie默认超时时间是多少?如何设置超时时间
#源码expires = self.get_expiration_time(app, session)
'PERMANENT_SESSION_LIFETIME': timedelta(days=31),#这个配置文件控制