如果存储在数据库中,需要在INSTALLED_APPS中安装Session应用:
django.contrib.sessions
在redis中保存session,需要引入第三方扩展,使用django-redis
在settings中做如下设置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "default"
修改redis中的配置文件
sudo vim /etc/redis/redis.conf
绑定本地地址
重新启动redis服务
sudo service redis-server restart
Session操作
1) 以键值对的格式写session
request.session['键']=值
2)根据键读取值。
request.session.get('键',默认值)
3) 删除session中的指定键及值,在存储中只删除某个键及对应的值。
del request.session['键']
4) 设置session的有效期
request.session.set_expiry(value)
- 如果value是一个整数,session将在value秒没有活动后过期。
- 如果value为0,那么用户session的Cookie将在用户的浏览器关闭时过期。
- 如果value为None,那么session有效期将采用系统默认值,默认为两周,可以通过在settings.py中设置SESSION_COOKIE_AGE来设置全局默认值。