728x90

 

 

목차

1. 데코레이터(Decorator)

2. allowed HTTP methods

 


1. 데코레이터(Decorator)

view 함수를 작성했다면 이번에는 View decorator라는 것을 이용하여 단단하게 만들어주자.

  • 기존에 작성된 함수에 기능을 추가하고 싶을 때, 해당 함수를 수정하지 않고 기능을 추가해주는 함수
  • Django는 다양한 HTTP 기능을 지원하기 위하여 view 함수에 적용할 수 있는 여러 데코레이터를 제공한다.

예시

위 코드에서 보이듯이 내부 수정이 아닌 `@hello`을 통하여 기능 추가를 해준 것을 출력을 통해 확인할 수 있다.

이런 데코레이터를 이용하여 단단하게 만드는 것이 어떤 것인지 알아보자!


 

2. Allowed HTTP methods

  • django.views.decorators.http의 데코레이터를 사용하여 요청 메서드를 기반으로 접근을 제한할 수 있음
  • 일치하지 않는 메서드 요청이라면 405 Method Not Allowed를 반환
  • 405 Method Not Allowed : 요청 방법이 서버에게 전달 되었으나 사용 불가능한 상태
# 모듈이므로 사용하기 위하여
from django.views.decorators.http import 'decorator name'

 

require_http_methods()
  • View 함수가 특정한 요청 method만 허용하도록 하는 데코레이터

허용된 GET, POST가 아닌 경우 거절당한다!

 

require_POST()
  • View 함수가 POST 요청 method만 허용하도록 하는 데코레이터

POST인 경우에만 삭제를 진행하도록 해준다.

확인해보기 위하여 URL로 DELETE 시도 후 서버 로그에서 405 Error가 뜨는지 확인하자.

 

require_safe()
  • require_GET이 있지만 Django에서는 require_safe를 사용하는 것을 권장

 

 

 

# 마무리

  • Django Form Class
    • Django 프로젝트의 주요 유효성 검사 도구
    • 공격 및 데이터 손상에 대한 중요한 방어 수단
    • 유효성 검사에 대해 개발자에게 강력한 편의를 제공
  • View 함수 구조 변화
    • HTTP requests 처리에 따른 구조 변화
728x90

'Back-end > Django' 카테고리의 다른 글

[Django] HTTP Cookies  (0) 2022.09.19
[Django] Authentication System  (0) 2022.09.18
[Django] Handling HTTP requests  (0) 2022.09.06
[Django] ModelForm  (0) 2022.09.06
[Django] Form  (1) 2022.09.06