我想要做这样的事情:如何从python appengine中的basehandler调用处理函数?
class Basehandler(webapp.RequestHandler):
def __init__(self):
if checkforspecialcase: #check something that always needs to be handled
return SpecialCaseHandler.get()
class NormalHandler(Basehandler):
def get(self):
print 'hello world'
return
class SpecialCaseHandler(Basehandler):
def get(self):
print 'hello special world'
return
的想法是,不管是什么处理程序最初称,如果某种情况下得到满足,我们基本上切换到另一个处理程序。
我对python非常陌生,所以我不确定我想要做什么是可能的。或者这是否是最好的方法。我真正想要做的是确保向某人展示完整的个人资料页面,如果他们已经开始注册过程但尚未完成注册过程......无论他们提出了什么要求。因此,“checkforspecialcase”查看他们的会话并检查不完整的信息。
这是我尝试的第一件事,但没有去。如果在上面的条件之后放置self.redirect('/ special-case'),则会出现以下错误:“AttributeError:'NormalHandler'对象没有'request'属性。”只有在您调用它时,重定向才起作用在get()或post()方法中,但不是来自初始化方法。 – 2011-02-05 06:21:59
是的,没错。你为什么不在`get`方法中使用这个条件呢?为什么我们需要`__init__`? – dheerosaur 2011-02-05 06:39:55