如何找出 request.session sessionid 并将其用作 Django 中的变量?
我知道您可以使用 request.session['variable_name'] 获取会话变量,但似乎没有办法将会话 id(key) 作为变量来获取类似的方式。 这有记录在任何地方吗? 我找不到它。
I'm aware that you can get session variables using request.session['variable_name']
, but there doesn't seem to be a way to grab the session id(key) as a variable in a similar way. Is this documented anywhere? I can't find it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
为了可靠地获取会话密钥,您需要首先确保会话已创建。 文档提到了
.create()
会话方法,可用于确保存在会话密钥:To reliably get the session key, you need to make sure the session has been created first. The documentation mentions a
.create()
session method, which can be used to make sure there's a session key:使用:
Use:
在 Django 1.8 中:
和
两者都正常工作。
In Django 1.8:
and
Both work correctly.
您可以使用 session_key、
_session_key
和_get_session_key()
如下所示。 *我使用Django 4.2.1:并且,您可以在Django模板中使用
request.session.session_key
获取会话密钥,如下所示:You can get the session key with session_key,
_session_key
and_get_session_key()
in Django Views as shown below. *I use Django 4.2.1:And, you can get the session key with
request.session.session_key
in Django Templates as shown below:您也可以查看您的会话:
You can check in your sessions too:
请注意,只有存在会话时密钥才会存在,没有密钥则不存在会话。 您可以使用它来测试会话是否存在。 如果要创建会话,请调用create。
Note the key will only exist if there is a session, no key, no session. You can use this to test if a session exists. If you want to create a session, call create.
Django 会话将其密钥保存在 cookie 中。 至少它的中间件是这样提取的:
Django sessions save their key in a cookie. At least its middleware extracts it like this:
在 Django >= 1.4 中使用:
in Django >= 1.4 use:
这将为您提供一个会话 ID 或为您创建一个。 如果您执行
dir(request.session)
,您将获得许多有用的方法。This will either get you a session ID or create one for you. If you do
dir(request.session)
, you will get many useful methods.