blog.mtb-production.info

音楽制作が好きなPythonエンジニアのブログ

djangoのミドルウェアってなんなんだと思った

djangoミドルウェアってなんなんだ。って思った。

とりあえず書いてみた。

こんな感じ。

class MyLoggingMiddleware(object):
    def __init__(self, get_responce):
        self.get_responce = get_responce
        print("MyLogging Middleware init")

    def __call__(self, request):
        print("pre-call:{}".format(request))
        responce = self.get_responce(request)
        print("post-call:{}".format(request))
        return responce

ここを参考にした。

Middleware | Django documentation | Django

なんとなく、書いてみたら雰囲気分かった。

python manage.py runserver で動作を確かめた。 よく分かってないけど、 __init__ が2回呼ばれてる様子だって、それの理由はよく分かってないけど、とりあえず、 __call__ の雰囲気はわかった

ソースはgithubにおいた。

github.com