如果存儲在數據庫中,需要在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來設置全局默認值。