session配置
session三種存儲方式配置
在Django中Session是通過一個中間件管理的。如果要在應用程序中使用Session,需要在settings.py中的MIDDLEWARE_CLASSES變量中加入’django.contrib.sessions.middleware.SessionMiddleware’ 。
Django中的Session有3種存儲方式:放在數據庫、緩存或者文件系統中,下面分別予以介紹:
1、session存儲在數據庫中
如果要將Session存儲在數據庫中,我們需要將 ’django.contrib.sessions’ 加入到INSTALLED_APPS 變量中。然後運行 manage.py syncdb 在數據庫中創建相應的存儲Session的數據庫表。
2、將Session存儲在緩存中
如果想獲得更好的性能,我們可以將Session保存在緩存中。這裏有兩種配置方式:一種是設置SESSION_ENGINE 為”django.contrib.sessions.backends.cache” 。這是一種簡單配置,Session將之被保存在緩存中,但是不保證Session總是能取到(比如緩存溢出時Session會丟失);另一種方式是設置SESSION_ENGINE 為 “django.contrib.sessions.backends.cached_db”。這種方式下,Session在保存到緩存的同時還會被保存到數據庫中,當Django在緩存中找不到Session時,會從數據庫中找到。第二種方式會有一點點性能開銷,但是安全性和冗余性更好。
3、將Session存儲在文件系統中
最後一種方式是將Session存儲在文件系統中。需要設置SESSION_ENGINE 為”django.contrib.sessions.backends.file”,這時你還需要同時設置SESSION_FILE_PATH 變量,它代表Session文件保存的位置,缺省的設置一般是tempfile.gettempdir(),表示系統的臨時目錄。這裏要確保應用程序對那個目錄有讀寫的權限。
session配置