MIddleware

タイトル:django Middlew…

カテゴリ:python

投稿日22/05/01 09:20

更新日22/05/01 09:20

GOOD
none0
お気に入り
none
・使用の経緯 すべてのrequeest処理に対してフックさせたい処理があった。 ・実装方法 DjangoのMiddlewareフレームワークを使うと簡単に実装することができる。 [【公式ドキュメントリンク】MIddleware | Django documentation](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjGqMqI_7z3AhUiplYBHaJDA2sQFnoECAoQAQ&url=https%3A%2F%2Fdocs.djangoproject.com%2Fen%2F4.0%2Ftopics%2Fhttp%2Fmiddleware%2F&usg=AOvVaw3IXymyfoDUTyQogevf-gLh) ・MIddlewareクラスの作成 ```py class MyAppMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): # self.get_response() に処理を書くことで、viewの処理の前に実行することができる。今回は、requestのタイミングで実行させたかったので、ここによりを追加。 something("独自に定義した処理") response = self.get_response(request) return response ``` ※処理を差し込む場所によって実行のタイミングが違うので使用される場合はドキュメント参照。 ・middlewreの有効化 ```py:setting.py MIDDLEWARE = [ 'myapp.middlewareMyAppMiddleware' # 自分のプロジェクトに適宜変更して追加する。 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ```
©Bloodberry