有没有办法在内部传递从一个请求的处理RequestHandler
子类到另一个? 基本上,我想要做的是,从get
一个的方法RequestHandler
(当然,的一个子类RequestHandler
),调度处理请求到另一个处理程序(的子任务RequestHandler
),其名称由获取的值来确定从数据存储(我使用GAE,但这并不影响这个问题)。 该守则将是这个样子:
class Dispatcher(RequestHandler):
def get_handler(some_id):
handler_name = get_handler_name(some_id) # fetches from datastore/etc.
return getattr(my_module, handler_name)
def get(self, some_id, *args, **kwargs):
handler = get_handler(some_id) # e.g., handler could be a HandlerA
# Not a real function, just to describe what to do:
# invokes get method of HandlerA (if handler == HandlerA)
dispatch_to_handler(handler, self, *args, **kwargs)
def post(self, some_id):
handler = get_handler(some_id)
dispatch_to_handler(....) # dispatches to post method of the handler
class HandlerA(RequestHandler):
def get(self, *args, **kwargs):
do_stuff()
def post(...):
do_post_stuff()
最大的问题是,我需要以某种方式通过self
和位置和关键字参数到其他处理器(HandlerA在这个例子中),为self
包含的请求,响应,会话,认证和其他数据,这HandlerA
(或任何处理程序而定),以处理该请求的需要。