天天看点

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,如需转载请自行联系原作者