Django對于Session有一些預設的通用配置,這些預設配置為:
1
2
3
4
5
6
7
8
<code>SESSION_COOKIE_NAME == </code><code>"sessionid"</code> <code>#Session的cookie儲存在浏覽器上時的key</code>
<code>SESSION_COOKIE_PATH == “/” </code><code>#Session的cookie儲存的路徑(預設)</code>
<code>SESSION_COOKIE_DOMAIN = None </code><code>#Session的cookie儲存的域名(預設)</code>
<code>SESSION_COOKIE_SECURE = False </code><code>#是否Https傳輸cookie</code>
<code>SESSION_COOKIE_HTTPONLY = True </code><code>#是否Session的cookie隻支援http傳輸(預設)</code>
<code>SESSION_COOKIE_AGE = 1209600 </code><code>#Session的cookie失效日期(2周)(預設)</code>
<code>SESSION_SAVE_EVERY_REQUEST = False </code><code>#是否設定關閉浏覽器使得Session過期</code>
<code>SESSION_COOKIE_AT_BROWSER_CLOSE = False </code><code>#是否每次請求都儲存Session,預設修改之後才能儲存</code>
這些配置可以在settings.py檔案中寫入并進行更改
Django中,Session可以儲存在資料庫中,可以儲存到緩沖中,也可以儲存到檔案中,預設情況下是儲存在資料庫中,資料庫中有一張Sessions表。可以通過修改settings.py檔案來修改session的儲存方式。
9
10
11
12
13
<code>預設儲存在資料庫中:</code>
<code>SESSION_ENGINE = </code><code>'django.contrib.sessions.backends.db'</code>
<code>儲存在檔案中</code>
<code>SESSION_ENGINE = </code><code>'django.contrib.sessions.backends.file'</code>
<code>儲存在緩存中</code>
<code>SESSION_ENGINE = </code><code>'django.contrib.sessions.backends.cache'</code>
<code>同時儲存到緩存和資料庫中</code>
<code>SESSION_ENGINE = </code><code>'django.contrib.sessions.backends.cache_db'</code>
Django關于Session的操作:
14
15
16
17
18
19
20
<code>request.session.set_expiry(value)</code>
<code>如果value是個整數, session會在這些秒後失效</code>
<code>如果value是個datatime或timedelta,session就會在這個時間後失效</code>
<code>如果value是0,使用者關閉浏覽器session就會失效</code>
<code>如果value是None,session會依賴全局session失效政策</code>
<code>request.session.delete(</code><code>"session_key"</code><code>)</code>
<code>删除目前使用者的所有session資料</code>
<code>request.session.</code><code>clear</code><code>()</code>
<code>清除所有session</code>
<code>request.session[</code><code>'k1'</code><code>]</code>
<code>request.session.get(</code><code>'k1'</code><code>,None)</code>
<code>request.session[</code><code>'k1'</code><code>] =123</code>
<code>不存則設定,存在則更新</code>
<code>request.session.setdefault(</code><code>'k1'</code><code>,123)</code>
<code>存在則不設定</code>
<code></code>
本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1942614,如需轉載請自行聯系原作者