2017-03-28 77 views
1

基本上,我正在寻找的是Django的/ Python的等同于PHP如何在Django中获取会话数据?

session_start(); 
print_R($_SESSION); 

也就是说,我想转储所有我公司目前已存储在会话信息,以便我能看到什么在那里。

回答

3

会议是一个dict-like object所以你可以简单地print request.session看看里面有什么。

当使用开发服务器时,输出将显示在服务器的控制台上 - 通常实际上它比PHP中的print_r要好,它会将其转储到网页浏览器,在您可能拥有的任何HTML旁边。

但是,如果您想将其发送到浏览器,您也可以使用return HttpResponse(repr(request.session))

+0

你是什么意思“输出将显示在服务器的控制台上”?你是说我应该在终端使用REPL吗?或者它会出现在浏览器开发工具的控制台中? – wogsland

+0

通常人们在开发过程中使用['django-admin runserver'](https://docs.djangoproject.com/en/1.10/ref/django-admin/)。因为'print'会直接输出到标准输出,所以您在Python中'打印'的任何东西都会显示在那里。 – ThiefMaster

+0

OCI。谢谢,小弟! – wogsland

0

由于Django中间件将所有会话数据存储在请求中,我们可以在任何视图中访问会话数据。由于会话只是一个Python字典(键值对),所有数据都可以像普通Python字典。

要存储在会话中的数据只是做:

request.session['USER_NAME'] = 'John' 

同样,你可以访问任何你有请求对象:

request.session.get('USER_NAME') 

所以,要看到实际的字典您可以打印或日志:

request.session