天天看點

Django Session通用配置

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,如需轉載請自行聯系原作者