有趣的Django会话行为

时间:2014-09-30 15:02:03

标签: python django session django-sessions

settings.py SESSION_EXPIRE_AT_BROWSER_CLOSE = Truecsrftoken。我不确定这是否是正确的地方,如果需要先导入任何东西。但它不会在 Chrome 版本37.0.2062.124 m 上工作,因为它会持久保存会话数据。即使关闭并重新打开浏览器,我的会话相关页面仍会打开。

因此,我手动清除了Chrome会话设置会话中的会话数据sessionidDatabase Datahome已完全无法使用。即使我登录并尝试要在同一浏览器的另一个标签页(Chrome,Firefox,IE,Safari)中打开login页面,我会被重定向到def index(request): #login page. if 'id' in request.session: Proceed to Home Page if request.method == 'POST': Do the needful set request.session['id'] proceed to Home Page return render(request, 'myapp/index.html') def home(request): #homp page if 'id' not in request.session: redirect to login page return render(request, 'myapp/home.html') 页面。

{{1}}

我该如何开展这项工作?

1 个答案:

答案 0 :(得分:0)

我认为,set_expiry(0)将完成这项工作。这里the doc

def index(request): #login page.
  if 'id' in request.session:
      Proceed to Home Page
  if request.method == 'POST':
      Do the needful 
      set request.session['id']
      request.session.set_expiry(0)#<---
      proceed to Home Page
  return render(request, 'myapp/index.html')