MIddleware
タイトル:django Middlew…
カテゴリ:python
投稿日:22/05/01 09:20
更新日:22/05/01 09:20
GOOD
0
お気に入り
・使用の経緯
すべての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',
]
```