更新时间:2022-10-04 22:35:56
Django对于Session有一些默认的通用配置,这些默认配置为:
1
2
3
4
5
6
7
8
|
SESSION_COOKIE_NAME == "sessionid" #Session的cookie保存在浏览器上时的key
SESSION_COOKIE_PATH == “/” #Session的cookie保存的路径(默认)
SESSION_COOKIE_DOMAIN = None #Session的cookie保存的域名(默认)
SESSION_COOKIE_SECURE = False #是否Https传输cookie
SESSION_COOKIE_HTTPONLY = True #是否Session的cookie只支持http传输(默认)
SESSION_COOKIE_AGE = 1209600 #Session的cookie失效日期(2周)(默认)
SESSION_SAVE_EVERY_REQUEST = False #是否设置关闭浏览器使得Session过期
SESSION_COOKIE_AT_BROWSER_CLOSE = False #是否每次请求都保存Session,默认修改之后才能保存
|
这些配置可以在settings.py文件中写入并进行更改
Django中,Session可以保存在数据库中,可以保存到缓冲中,也可以保存到文件中,默认情况下是保存在数据库中,数据库中有一张Sessions表。可以通过修改settings.py文件来修改session的保存方式。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
默认保存在数据库中: SESSION_ENGINE = 'django.contrib.sessions.backends.db'
保存在文件中 SESSION_ENGINE = 'django.contrib.sessions.backends.file'
保存在缓存中 SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
同时保存到缓存和数据库中 SESSION_ENGINE = 'django.contrib.sessions.backends.cache_db'
|
Django关于Session的操作:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
request.session.set_expiry(value) 如果value是个整数, session会在这些秒后失效 如果value是个datatime或timedelta,session就会在这个时间后失效 如果value是0,用户关闭浏览器session就会失效 如果value是None,session会依赖全局session失效策略 request.session.delete( "session_key" )
删除当前用户的所有session数据 request.session. clear ()
清除所有session request.session[ 'k1' ]
request.session.get( 'k1' ,None)
request.session[ 'k1' ] =123
不存则设置,存在则更新 request.session.setdefault( 'k1' ,123)
存在则不设置
|