国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

在Django的視圖(View)外使用Session的方法

2020-01-04 17:59:41
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了在Django的視圖(View)外使用Session的方法,Django是最具人氣的Python web開發框架,需要的朋友可以參考下

從內部來看,每個session都只是一個普通的Django model(在 django.contrib.sessions.models 中定義)。每個session都由一個隨機的32字節哈希串來標識,并存儲于cookie中。 因為它是一個標準的模型,所以你可以使用Django數據庫API來存取session。

 

 
  1. >>> from django.contrib.sessions.models import Session 
  2. >>> s = Session.objects.get(pk='2b1189a188b44ad18c35e113ac6ceead'
  3. >>> s.expire_date 
  4. datetime.datetime(2005, 8, 20, 13, 35, 12) 

你需要使用get_decoded() 來讀取實際的session數據。 這是必需的,因為字典存儲為一種特定的編碼格式。

 

 
  1. >>> s.session_data 
  2. 'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMTExY2ZjODI2Yj...' 
  3. >>> s.get_decoded() 
  4. {'user_id': 42} 

何時保存Session

缺省的情況下,Django只會在session發生變化的時候才會存入數據庫,比如說,字典賦值或刪除。

 

 
  1. # Session is modified. 
  2. request.session['foo'] = 'bar' 
  3.  
  4. # Session is modified. 
  5. del request.session['foo'
  6.  
  7. # Session is modified. 
  8. request.session['foo'] = {} 
  9.  
  10. # Gotcha: Session is NOT modified, because this alters 
  11. # request.session['foo'] instead of request.session. 
  12. request.session['foo']['bar'] = 'baz' 

你可以設置 SESSION_SAVE_EVERY_REQUEST 為 True 來改變這一缺省行為。如果置為True的話,Django會在每次收到請求的時候保存session,即使沒發生變化。

注意,會話cookie只會在創建和修改的時候才會送出。 但如果 SESSION_SAVE_EVERY_REQUEST 設置為 True ,會話cookie在每次請求的時候都會送出。 同時,每次會話cookie送出的時候,其 expires 參數都會更新。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 和政县| 钟祥市| 昌都县| 富锦市| 湘潭市| 商洛市| 江永县| 易门县| 会昌县| 嵊泗县| 玉环县| 万荣县| 长岭县| 通渭县| 黄平县| 岳阳市| 文成县| 城市| 金平| 绩溪县| 正宁县| 菏泽市| 天祝| 桂东县| 宁强县| 凉城县| 溧阳市| 卢氏县| 龙川县| 大渡口区| 嘉善县| 怀远县| 蛟河市| 绥芬河市| 登封市| 庆阳市| 和林格尔县| 安顺市| 无为县| 景泰县| 勃利县|