sessionid的Django(Python)问题
sessionid有问题:sessionid的Django(Python)问题,python,django,Python,Django,sessionid有问题:request.session.session\u key在每次页面刷新/表单提交时生成一个键 而此:request.COOKIES[settings.SESSION\u COOKIE\u NAME]投诉找不到“sessionid”键 我错过什么了吗?我需要一个在我的站点上跨页面请求持久化的“密钥”。即使在浏览器关闭/3周等情况下,我也需要它保持不变。如果是Django,我该怎么做 我需要配置什么吗?如果我对sessionid及其生成方式有误解,请纠正我 谢谢你的回复
request.session.session\u key
在每次页面刷新/表单提交时生成一个键
而此:request.COOKIES[settings.SESSION\u COOKIE\u NAME]
投诉找不到“sessionid”键
我错过什么了吗?我需要一个在我的站点上跨页面请求持久化的“密钥”。即使在浏览器关闭/3周等情况下,我也需要它保持不变。如果是Django,我该怎么做
我需要配置什么吗?如果我对sessionid及其生成方式有误解,请纠正我
谢谢你的回复
问候,,
W
My settings.py是:听起来您的浏览器不接受Django发送的会话cookies 您的浏览器应该能够告诉您正在使用应用程序的页面响应设置哪些cookie。检查是否确实发送了“sessionid”cookie,以及域和路径是否正确 如果settings.py文件中的
SESSION\u COOKIE\u DOMAIN
或SESSION\u COOKIE\u PATH
设置不正确,可能会导致Django在浏览器中设置COOKIE,但这些COOKIE不会返回到服务器
如果要验证整个设置,请阅读以下内容:
简而言之,您需要:
- 在您的
安装的应用程序中安装
李>'django.contrib.sessions'
- 在
中间件类中有
;及'django.contrib.sessions.middleware'
- 在生产服务器上,您可能需要设置
和SESSION\u COOKIE\u DOMAIN
,以便与同一域或相关域上的其他web应用程序进行良好交互SESSION\u COOKIE\u PATH
- 在
SESSION\u COOKIE\u DOMAIN
设置为“mydomain.com”
通用TLD的cookie要求“域”部分至少包含两个句点(“.”)分隔符。这会阻止人们为“.com”等域设置cookie。(我认为,国家级管辖下的域的cookie需要三个周期。)
将其更改为“.mydomain.com”,浏览器应返回该文件
在开发过程中(在本地计算机上运行,版本为127.0.0.1),请将此设置留空,否则浏览器将根本不接受cookie会话路径设置为“/tmp”
这看起来是个错误,除非您的web应用程序托管在“”
SESSION\u COOKIE\u PATH
用于指示COOKIE的“路径”组件,即COOKIE将返回到服务器的URL前缀。这样,您就可以在“mydomain.com/firstapp/”和“mydomain.com/secondapp/”分别托管一个应用程序和另一个应用程序,并且您可以确保“sessionid”cookies不会在它们之间混淆
如果只有一个应用程序托管在此域名下,则将其留空,它将默认为“/”(整个域)
要控制Django在文件系统上存储会话数据的位置(这看起来就像您正在尝试做的),可以使用session\u FILE\u PATH
设置。默认情况下,它被设置为“/tmp/”,因此您根本不需要设置它
我有一个类似的问题,我通过将SESSION\u COOKIE\u NAME设置为默认的“sessionid”之外的其他名称来修复它。我想google analytics可能在某种程度上破坏了cookie。我不确定到底出了什么问题。它仍然会每次生成一个新密钥。My settings.py是这样的:我想我已经完成了手册中的内容。有什么想法吗?