utilsの:
'' ' セッション用户''' インポート日時を から app01.models インポートセッション ''」 III = request.session.session_data プリント(III) S = Session.objects.get(PK = 'lmefu9u5y6x5h2lumdrdq4xy0kma9dt3') プリント(s.session_data)を 印刷(s.get_decoded()) '' ' から django.contrib.sessions.models インポートセッション クラスPersonSessionを ():''' 个人虚拟セッションを''」 デフ __init__ (自己、リクエスト): self.time = datetime.datetimeの.now() 自己。セッション= {} self._session =ますrequest.session。__dict__ self.session_id = self._session [ ' _SessionBase__session_key ' ] self._s = Session.objects.get(PK = self.session_id) #数据 self.session_data = self._s.session_data self.session_time = self._s.expire_date セルフ._page() @classmethod デフget_session_store_class(CLS): 調達NotImplementedError #获取dictの格式セッション DEF :get_decoded(自己) session_store_class= self.get_session_store_class() 戻りsession_store_class()デコード(self.session_data)。 デフget_session(自己、リクエスト): '' ' 把数据存入ますrequest.session中''' DEF (自己)を削除: '' '「' ' session_obj = Sessions.objects.filter(SESSION_ID = self.session_id).delete() デフ(自己)を保存します 。''' セッション保存数据库''」 もし Sessions.objects.filter(SESSION_ID = self.session_id): 合格し 、他: session_obj=セッション(SESSION_ID = self.session_id、session_data = self.session_data、session_time = self.session_time) session_obj.save() DEF _page(自己): '' ' 并、判断是否登陆赋值''' session_obj = Sessions.objects。フィルタ(SESSION_ID = self.session_id)1次回() 場合session_obj: ' '' 、λ登陆''' self.session_data = session_obj.session_data self._s.session_data = self.session_data self.session = self._s.get_decoded() 返す真 返す偽
モデル:
#のセッション クラスセッション(models.Model): '' ' ますrequest.session ''' #第二主键 のsession_id = models.CharField(max_lengthを= 40、verbose_name = ' SESSIONID '、ヌル= False)が session_data = models.TextField(verbose_name = ' 数据'、ヌル= 真) session_time = models.DateTimeField(max_lengthを= 11、verbose_name = ' 存储有效期'、= Falseのヌル)
ビュー:
ますrequest.session [ " memberNameの" ] = member_obj.member_name ますrequest.session [ " MEMBERID " ] = member_obj.id から app01.utils.personSession インポートPersonSession 人物 = PersonSession(リクエスト) person.save()