인프런 커뮤니티 질문&답변
데코레이터 관련 질문...
작성
·
280
0
1.
@login_required
=> 로그인시 사용하는 것은 알겠는데, 적용 후
return는 설정한 대로 accountapp/hello_world.html로
오게 되나요?
2.
@method_decorator
정확한 용도를 모르겠어요 ㅜㅜ
@method_decorator의 역할을 알아야
@method_decorator(has_ownership, 'get')의 뜻도
좀 와닿을 거 같은데.. 이 코드는
has_ownership 안의 2리스트인
account_ownership_required와 login_required를
담고 그것을 사용하려고 하는 거 같은데...
좀 더 설명 부탁드려도 될까요...?
퀴즈
웹 애플리케이션에서 인증(Authentication) 및 인가(Authorization) 시스템이 중요한 주된 이유는 무엇일까요?
웹사이트의 디자인을 시각적으로 개선하기 위해
사용자 데이터를 안전하게 보호하고 권한 없는 접근을 막기 위해
데이터베이스의 조회 속도를 최적화하기 위해
서버의 하드웨어 성능을 자동으로 확장하기 위해
답변 1
0
안녕하세요.
질문 확인했습니다.
1. 로그인 이후 되돌아 오는 것이 맞습니다.
이전 login 과정을 만들때 말씀드린 것 처럼, next 라는 값이 주소창으로 넘어가게 되고,
해당 값을 기반으로 hello_world 페이지로 되돌아오게 될거에요.
물론 설정값을 다르게 함으로서 해당 기능을 다르게 할 수도 있습니다.
2. method_decorator 의 정확한 정의는 공식 문서와 함께 답변드리겠습니다.
https://docs.djangoproject.com/en/3.2/ref/utils/#django.utils.decorators.method_decorator
위의 문서를 보시면 알겠지만,
파이썬에서 보통 decorator 는 함수에 적용됩니다.
그런데, 지금 저희가 로직을 짜는 내용은 대부분 Class Based View 에 기반을 두고 있죠.
그렇기 때문에 저희는 function이 아닌, class 내부의 메서드에 데코레이터를 적용하고 싶은겁니다.
이렇게 함수에 적용하는 decorator 를 메서드에도 적용하기 위해서
데코레이터를 변환시켜주는 작업을 해주는 데코레이터가 method_decorator 라고 생각하시면 되겠습니다.
답변이 도움이 되셨으면 좋겠네요.
좋은하루 보내시구요!
감사합니다-




