我想要做這樣的事情:如何從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