Django 中session的不一樣存儲方式的配置

在Django中Session是經過一箇中間件管理的。若是要在應用程序中使用Session,須要在settings.py中的MIDDLEWARE_CLASSES變量中加入’django.contrib.sessions.middleware.SessionMiddleware’ 。web

Django中的Session有3種存儲方式:放在數據庫、緩存或者文件系統中,下面分別予以介紹。數據庫

1. 將Session存儲在數據庫中:django

若是要將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時,會從數據庫中找到。第二種方式會有一點點性能開銷,可是安全性和冗餘性更好。session

3. 將Session存儲在文件系統中:性能

最後一種方式是將Session存儲在文件系統中。須要設置SESSION_ENGINE 爲」django.contrib.sessions.backends.file」,這時你還須要同時設置SESSION_FILE_PATH 變量,它表明Session文件保存的位置,缺省的設置通常是tempfile.gettempdir(),表示系統的臨時目錄。這裏要確保應用程序對那個目錄有讀寫的權限。orm

相關文章
相關標籤/搜索