django session 是按用戶的瀏覽器來保存的,不同的瀏覽器對應的session不一樣,
一個瀏覽器一個用戶一筆資料,如果有多個session值也是保存在一筆資料
session.get_decoded()出來的結果是
{'favo_color':'red', 'favo_color2':'white', '_sessin_expiry':600}
session的expire默認是2個星期,2個星期後過期
重新調用request.session['favo_color'] = color後會重新增加2個星期
request.session.set_expiry(value)
你可以传递四种不同的值给它:
* 如果value是个整数,session会在些秒数后失效。
* 如果value是个datatime或timedelta,session就会在这个时间后失效。
* 如果value是0,用户关闭浏览器session就会失效。
* 如果value是None,session会依赖全局session失效策略。
* If value is an integer, the session will expire after that many seconds of inactivity. For example, calling request.session.set_expiry(300) would make the session expire in 5 minutes.
* If value is a datetime or timedelta object, the session will expire at that specific date/time.
* If value is 0, the user’s session cookie will expire when the user’s Web browser is closed.
* If value is None, the session reverts to using the global session expiry policy.
def show_color(request):
#color = request.session["favo_color"]
color = request.session.get('favo_color', 'None')
return HttpResponse("You favorite color is: " + color)
def set_color(request):
color = "red"
if "favo_color" in request.GET:
color = request.GET["favo_color"]
request.session['favo_color'] = color
request.session.set_expiry(600)
return HttpResponse("You favorite color is set: " + color)