国产探花免费观看_亚洲丰满少妇自慰呻吟_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 參數都會更新。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 郁南县| 沽源县| 时尚| 广元市| 玉田县| 元氏县| 金沙县| 中阳县| 龙川县| 和顺县| 会宁县| 孝昌县| 邯郸市| 榆社县| 江川县| 蕉岭县| 贵定县| 扶绥县| 大悟县| 呼和浩特市| 阳曲县| 金山区| 麻阳| 博爱县| 兴隆县| 包头市| 常州市| 章丘市| 都安| 昌吉市| 彰武县| 泰和县| 通榆县| 屯门区| 从化市| 天等县| 阿图什市| 唐海县| 尚义县| 渑池县| 孟州市|