데코레이터를 사용하여 요청 메서드를 기반으로 접근을 제한하는 방법에 대해 알아보자.
django.views.decorators.http
의 데코레이터를 사용하여 요청 메서드를 기반으로 접근을 제한할 수 있음require_http_methods()
require_POST()
require_safe()
# views.py
from django.views.decorators.http import require_http_methods
@require_http_methods(['POST']) # POST만 허용
def delete(request):
user = request.user
user.delete()
return redirect('articles:index')
# views.py
from django.views.decorators.http import require_POST
@require_POST
def delete(request):
user = request.user
user.delete()
return redirect('articles:index')
require_GET
이 있지만 Django에서는 require_safe
를 사용하는 것을 권장# views.py
from django.views.decorators.http import require_safe
@require_safe
def index(request):
...
@require_safe
def detail(request, pk):
...