1

私は webapp2 セッションのドキュメントに従っています: http://webapp-improved.appspot.com/api/webapp2_extras/sessions.html

BaseHandlerここにクラスメソッドがcheck_cls_loginあり、セッションキー「ログイン」が存在するかどうかを確認する必要があります。試してみself.session.get("login")ましたが、エラーが返されます: AttributeError: 'cached_property' object has no attribute 'get'.

&という関数も定義されており、check_loginエラーも返します。AttributeError: 'MainHandler' object has no attribute 'session_store'

Base.py

import webapp2
from webapp2_extras import sessions

class BaseHandler(webapp2.RequestHandler):
    def dispatch(self):
       # Get a session store for this request.
       self.session_store = sessions.get_store(request=self.request)

       try:
         # Dispatch the request.
         webapp2.RequestHandler.dispatch(self)
       finally:
         # Save all sessions.
         self.session_store.save_sessions(self.response)

    @webapp2.cached_property
    def session(self):
       # Returns a session using the default cookie key.
       return self.session_store.get_session()

    def check_cls_login(self):
        # Check whether session key "login" is exist or not
        value = self.session.get("login")

def check_login(cls):
    # Check whether session key "login" is exist or not
    value = cls.session.get("login")

Main.py

from Base import BaseHandler

class MainHandler(BaseHandler):
   def __init__(self, request, response):
    super(BaseHandler, self).__init__(request, response)
    BaseHandler.check_cls_login() # AttributeError: 'cached_property' object has no attribute 'get'

    self.check_cls_login() # AttributeError: 'cached_property' object has no attribute 'get'

    check_login(self) # AttributeError: 'MainHandler' object has no attribute 'session_store'
4

1 に答える 1

1

あなたの代わりにBaseHandler.check_login()持っている必要がありますself.check_login()。また、check_login はクラスメソッドであってはなりません。

于 2013-08-17T09:03:55.607 に答える