W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
這部分的例子直接從 ?django.contrib.sessions.backends.db
? 后端導(dǎo)入 ?SessionStore
? 對(duì)象。在你自己的代碼里,你應(yīng)該考慮從 ?SESSION_ENGINE
? 指定的會(huì)話(huà)引擎導(dǎo)入 ?SessionStore
?。
>>> from importlib import import_module
>>> from django.conf import settings
>>> SessionStore = import_module(settings.SESSION_ENGINE).SessionStore
可以在視圖外對(duì)會(huì)話(huà)數(shù)據(jù)進(jìn)行操作的 API :
>>> from django.contrib.sessions.backends.db import SessionStore
>>> s = SessionStore()
>>> # stored as seconds since epoch since datetimes are not serializable in JSON.
>>> s['last_login'] = 1376587691
>>> s.create()
>>> s.session_key
'2b1189a188b44ad18c35e113ac6ceead'
>>> s = SessionStore(session_key='2b1189a188b44ad18c35e113ac6ceead')
>>> s['last_login']
1376587691
?SessionStore.create()
? 用來(lái)創(chuàng)建一個(gè)新會(huì)話(huà)(即不從會(huì)話(huà)中加載,并帶有 ?session_key=None
?)。?save()
? 用來(lái)保存已存在的會(huì)話(huà)(即從會(huì)話(huà)存儲(chǔ)中加載)。在新會(huì)話(huà)上調(diào)用 ?save()
? 也許會(huì)工作,但生成與現(xiàn)有會(huì)話(huà)相沖突的 ?session_key
?的概率很小。?create()
? 調(diào)用 ?save()
? 并循環(huán),直到生成了未使用過(guò)的 ?session_key
?。
如果你正在使用 ?django.contrib.sessions.backends.db
? 后端,每個(gè)會(huì)話(huà)就會(huì)是一個(gè)普通的 Django 模型。 ?Session
?模型在 ?django/contrib/sessions/models.py
? 中定義。因?yàn)樗褪且粋€(gè)普通模型,你可以使用普通的 Django 數(shù)據(jù)庫(kù) API 訪(fǎng)問(wèn)會(huì)話(huà)。
>>> from django.contrib.sessions.models import Session
>>> s = Session.objects.get(pk='2b1189a188b44ad18c35e113ac6ceead')
>>> s.expire_date
datetime.datetime(2005, 8, 20, 13, 35, 12)
注意你將需要調(diào)用 ?get_decoded()
? 來(lái)得到會(huì)話(huà)字典。這是必須的,因?yàn)樽值涫前凑站幋a格式存儲(chǔ)的:
>>> s.session_data
'KGRwMQpTJ19hdXRoX3VzZXJfaWQnCnAyCkkxCnMuMTExY2ZjODI2Yj...'
>>> s.get_decoded()
{'user_id': 42}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: