データベースに保存されているのpython-ウェブdjango-モール-session

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()

 

おすすめ

転載: www.cnblogs.com/person1-0-1/p/11390995.html