2017-03-28 59 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