我想这样做:
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”会查看他们的会话并检查不完整的信息。在
要保持干燥,请使用Template Method pattern
WSGIApplication基于URL路由传入请求。例如
当
checkforspecialcase
通过时,可以使用self.redirect('/special-case')
。在Basehandler可以实现一个get(),它检查特殊情况并重定向或调用自我观察(),并且每个处理程序都可以实现view()(或者您想调用它的任何东西),而不是get()。在
我不太喜欢为我的每个处理程序编写一个类,也不太喜欢如此显著地使用继承,所以我推荐如下滚动装饰器:
相关问题 更多 >
编程相关推荐