Django:啥时候设置 sessionid cookie? [是不是默认可用? ]

Posted

技术标签:

【中文标题】Django:啥时候设置 sessionid cookie? [是不是默认可用? ]【英文标题】:Django : When is sessionid cookie set ? [ Is it available by default ? ]Django:什么时候设置 sessionid cookie? [是否默认可用? ] 【发布时间】:2012-08-28 17:41:39 【问题描述】:

我正在尝试跟踪用户 - 无需登录。为此,我尝试使用 sessionid 或 django 会话。

查看:

# Associating data with sessionid
ob = MyModel(session_key=request.session.session_key, data='abc')
ob.save()

目的是为每个浏览器会话保存特定数据。

引发错误:

# session_key not found

我检查了浏览器上的cookie,只有csrftokensessionid 不在 cookie 列表中。

我假设无论如何都会维护sessionid?但似乎并非如此。

那么,sessionid 是什么时候创建的?如何在没有用户登录的情况下管理session

【问题讨论】:

【参考方案1】:

默认行为是仅在您访问或修改session dict-like 对象中的键时才填充会话。

为避免这种行为,请在您的 settings.py 文件中将 SESSION_SAVE_EVERY_REQUEST 设置为 True。即使您没有修改会话对象,这也可以确保在每个请求上都保存一个会话。

身份验证中间件与会话无关;默认情况下,django 支持匿名会话。

【讨论】:

以上是关于Django:啥时候设置 sessionid cookie? [是不是默认可用? ]的主要内容,如果未能解决你的问题,请参考以下文章

java jsessionid啥时候 生成的

Django:如何在不使用 SESSION_SAVE_EVERY_REQUEST 的情况下为 AnonymousUser 设置 sessionid cookie

django form (something about cookie and sessionid)

Chrome 和 IE 不发送 ASP.NET_SessionID - 即会话变量丢失?

Django 清除 COOKIES sessionid

如何防止 Django 覆盖 sessionid cookie?