在Django的視圖(View)外使用Session的方法
從內(nèi)部來看,每個session都只是一個普通的Django model(在 django.contrib.sessions.models 中定義)。每個session都由一個隨機(jī)的32字節(jié)哈希串來標(biāo)識,并存儲于cookie中。 因?yàn)樗且粋€標(biāo)準(zhǔn)的模型,所以你可以使用Django數(shù)據(jù)庫API來存取session。
>>> from django.contrib.sessions.models import Session >>> s = Session.objects.get(pk='2b1189a188b44ad18c35e113ac6ceead') >>> s.expire_date datetime.datetime(2005, 8, 20, 13, 35, 12)
你需要使用get_decoded() 來讀取實(shí)際的session數(shù)據(jù)。 這是必需的,因?yàn)樽值浯鎯橐环N特定的編碼格式。
>>> s.session_data 'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMTExY2ZjODI2Yj...' >>> s.get_decoded() {'user_id': 42}
何時保存Session
缺省的情況下,Django只會在session發(fā)生變化的時候才會存入數(shù)據(jù)庫,比如說,字典賦值或刪除。
# Session is modified. request.session['foo'] = 'bar' # Session is modified. del request.session['foo'] # Session is modified. request.session['foo'] = {} # Gotcha: Session is NOT modified, because this alters # request.session['foo'] instead of request.session. request.session['foo']['bar'] = 'baz'
你可以設(shè)置 SESSION_SAVE_EVERY_REQUEST 為 True 來改變這一缺省行為。如果置為True的話,Django會在每次收到請求的時候保存session,即使沒發(fā)生變化。
注意,會話cookie只會在創(chuàng)建和修改的時候才會送出。 但如果 SESSION_SAVE_EVERY_REQUEST 設(shè)置為 True ,會話cookie在每次請求的時候都會送出。 同時,每次會話cookie送出的時候,其 expires 參數(shù)都會更新。
相關(guān)文章
TensorFlow繪制loss/accuracy曲線的實(shí)例
今天小編就為大家分享一篇TensorFlow繪制loss/accuracy曲線的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01Python pip install如何修改默認(rèn)下載路徑
這篇文章主要介紹了Python pip install如何修改默認(rèn)下載路徑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04深入解析Python中BeautifulSoup4的基礎(chǔ)知識與實(shí)戰(zhàn)應(yīng)用
BeautifulSoup4正是一款功能強(qiáng)大的解析器,能夠輕松解析HTML和XML文檔,本文將介紹BeautifulSoup4的基礎(chǔ)知識,并通過實(shí)際代碼示例進(jìn)行演示,感興趣的可以了解下2024-02-02Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例
今天小編就為大家分享一篇關(guān)于Python使用pandas和xlsxwriter讀寫xlsx文件的方法示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-04-04Python基礎(chǔ)之函數(shù)嵌套知識總結(jié)
今天帶大家回顧python基礎(chǔ)知識,文中對Python函數(shù)嵌套作了非常詳細(xì)的知識總結(jié),對正在學(xué)習(xí)python基礎(chǔ)的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05