2016/03/05

[Jinja2][Python][Google App Engine]webapp2.RequestHandlerの__init__をオーバーライド

webapp2.RequestHandlerの__init__をオーバーライドしたい場合にはどうすればいいのだろうか?
Overriding __init__()
で確認すると、以下のようにすればいいみたい。

class HogeHandler(webapp2.RequestHandler):
    def __init__(self, request, response):
        # Set self.request, self.response and self.app.
        self.initialize(request, response)

        # ... add your custom initializations here ...
        # ...
これ、dispatchを組み合わせた場合、__init__が先に実行される。(そりゃーそうなんだけど。)
class HogeHandler(webapp2.RequestHandler):
    def __init__(self, request, response):
        # Set self.request, self.response and self.app.
        self.initialize(request, response)

        # ... add your custom initializations here ...
        # ...
    def dispatch(self):
        # ... check if requirements were met ...
        # ...

        # Parent class will call the method to be dispatched
        # -- get() or post() or etc.
        super(MyHandler, self).dispatch()

0 コメント:

コメントを投稿