.
장고 사설 뷰는 몇 페이지 보호 및 액세스 할 로그인을 필요로 & NBSP 때입니다 웹 사이트의 일반적인 패턴을 제공하는 장고 응용 프로그램입니다; @login_required 장식은 종종 이러한 상황에 유용합니다. 대부분의 사이트가 공개 남아 페이지의 몇 가지 예외 (예 : FrontPage를 등록 페이지 등), 보호하지만, 아주 일반적인 다른 패턴이다. 그 경우에, 그것은 @login_required으로 모든 뷰를 장식하는 것은 매우 번거로운 일 수 있으며, 그 중 일부를 장식하기 쉽게 잊는다.
장고 사설 뷰는 모든보기를 보호하고 사용자가 명시 적으로 뷰를 공개해야하는 말할 수 있습니다. 이 오류가 발생하기 쉬운 일이 더 쉽고 덜 수 있습니다.
설치
PyPI에서 장고 사설 뷰를 설치합니다.
장고 사설 뷰를 설치 PIP
privateviews 미들웨어 설정에 추가
MIDDLEWARE_CLASSES = (
& NBSP; ...
& NBSP; privateviews.middleware.LoginRequiredMiddleware
)
공개 뷰를 선언
이 시점에서, settings.LOGIN_URL를 제외한 모든 뷰 그래서, 우리가 지금 공개해야하는 몇 가지보기를 지정해야합니다. 로그인 할 필요합니다. 공용 URL 경로를, 특별한 장식을 사용하여 공개 뷰를 나열하거나 목록 : 귀하의 처분에 세 가지 방법이 있습니다.
데코레이터를 사용하여
명시 적으로보기를 강제 할 수 @login_not_required 사용하여 공개합니다. 예를 들어 :
privateviews.decorators에서 가져 오기 login_not_required
@login_not_required
데프 FrontPage를 (요청)
& NBSP; ...
하지 재 로그인이 경우에, FrontPage를보기가 제대로 및 다른 URL이 경우에도 표시됩니다.
공공보기 목록
당신이 돈 & 다른 URL 경우, t는보기 및 다른 URL을 수정할 직접 액세스;의 코드를 (예를 들어, 그것은 및 다른 URL, 타사 응용 프로그램들), 당신은 여전히 당신의 설정 파일의 PUBLIC_VIEWS 설정에 추가하여 공개하는 것을보기를 강제 할 수 있습니다. 여기 및 다른 URL, 예를 s의 경우 당신 및 다른 URL, django.contrib.auth 시스템과 장고 등록 응용 프로그램을 사용하여 재 :
PUBLIC_VIEWS = [
& NBSP; 'django.contrib.auth.views.login'
& NBSP; 'django.contrib.auth.views.password_reset_done'
& NBSP; 'django.contrib.auth.views.password_reset'
& NBSP; 'django.contrib.auth.views.password_reset_confirm'
& NBSP; 'django.contrib.auth.views.password_reset_complete'
& NBSP; 'registration.views.register'
& NBSP; 'registration.views.activate'
]
URL 공공 경로를 나열
세 번째이자 마지막 방법은 직접이 공개 할 페이지 (정규 표현식)을 URL 경로를 지정하는 것입니다. 페이지가 일반 뷰에 의해 렌더링되는 경우에 유용 할 수있다. 당신이 (단지 개발 모드에서 권장) 장고를 통해 정적으로 미디어 파일을 봉사하는 경우에도 유용합니다. 이를 위해, 당신은 당신의 설정 파일에 설정 PUBLIC_PATHS를 추가해야합니다. 여기 및 다른 URL, 예 S :
PUBLIC_PATHS = [
& NBSP; '^ %의'% MEDIA_URL,
& NBSP; '^ / 계정 / / 전체 / $를 등록', #은 'direct_to_template'일반 뷰를 사용
]
404보기 개인 만들기
이 시점에서 사용자에 기록되지 않은 여전히 그들이보기에 매핑되지 않는 URL을 방문하는 경우 404 응답을 볼 수있을 것이다. 이 로그인없이 사이트 구조를 결정하는 것이 가능하지 않아야으로 그 이상이 아니다.
로그인 한 사용자를 제외한 모든 사람에게 개인 (404) 뷰를 만들려면, 당신의 최상위 urlconf의 마지막 행으로 다음을 추가합니다 :
urlpatterns의 패턴 = ( '',
& NBSP; ...
& NBSP; URL (R '^', 'privateviews.views.private_404')
)
이 요구 사항 :
이 파이썬
장고
댓글을 찾을 수 없습니다