2017-03-16 3 views
0

나는 후크 포인트 before_finalize에 연결 한 사용자 지정 도구가 있습니다. 'after_error_response'후크 포인트에 대해 동일한 도구를 실행하고 싶습니다. 이것을 달성 할 수있는 방법이 있습니까? 내 도구Cherrypy의 여러 후크 포인트에 도구를 연결하는 방법은 무엇입니까?

class MyTool(cherrypy.Tool): 
    def __init__(self): 
     cherrypy.Tool.__init__(self, 'before_finalize', 
           self._do_something, 
           priority=100) 

cherrypy.tools.mytool = MyTool() 
+1

https://github.com/cherrypy/cherrypy/blob/master/cherrypy/_cptools.py#L152 – webKnjaZ

+1

'_setup()'을 다시 정의하십시오. – webKnjaZ

+0

@webKnjaZ 감사합니다. 그것을 시도하고 그것이 효과. _setup 메소드를 오버로드하여 cherrypy.serving.request.hooks.attach ('after_error_response', self._do_something, priority = 100)를 호출했습니다. 또한 슈퍼를 호출해야합니다. – rdp

답변

0

당신은 후크 포인트를 파라미터와 다른 이름을 지정할 수 있습니다을 만드는 오전 방법

이입니다.

cherrypy.tools.mytool = MyTool('before_finalize') 
cherrypy.tools.mytool2 = MyTool('after_error_response') 

을하여 여러개의 지점에서 동일한 도구를 등록하려면 Tool._setup 자체를 재정의해야합니다. 대체 위치 :

cherrypy.serving.request.hooks.attach(self._point, self.callable, 
              priority=p, **conf) 

각 지점에 대한 호출.

+0

나는 내 질문에 언급 했어야했다. 나는 두 가지 도구를 갖고 싶지 않습니다. 기본적으로 cherrypy.tools.mytool.on을 할 때 : 사실, 도구가 'before_finalize'와 'after_error_response'둘 다 활성화되기를 원합니다. – rdp