【Django】@login_required 사용법 안내

django 프로젝트에서는 다음과 같은 코드가 자주 표시됩니다.
from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):
    ...

안에 @login 이 있어요.required 태그.그 역할은 프로그램에 이 방법을 사용하는 것이 사용자에게 로그인을 요구하는 것이라고 알려주는 것이다.
1. 사용자가 로그인하지 않으면 기본적으로'/accounts/login/'로 이동합니다.이 값은 settings 파일에서 LOGINURL 매개 변수로 설정합니다.(뒤에 당신이 요청한 URL을 로그인 후 이동하는 주소로 자동으로 추가합니다. 예를 들어/accounts/login/?next=/polls/3/로그인이 완료되면/poll/3을 요청합니다)
2. 사용자가 로그인하면 이 방법은 정상적으로 실행될 수 있다
LOGINURL은 기본값을 사용합니다. 그러면 urls에서.py에는 다음과 같은 설정이 필요합니다.
(r'^accounts/login/$', 'django.contrib.auth.views.login'),
이 경우 로그인하지 않으면 기본적으로 "templates\registration\login.html"템플릿으로 이동합니다.
경로를 바꾸려면templatename 매개 변수는 다음과 같습니다.
(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}),
그러면 프로그램이templates\myapp\login으로 넘어갑니다.html”
login이라는 유용한 방법 외에 auth 모듈은 다음과 같은 유용한 방법을 많이 제공한다.
logout(request[, next_page, template_name, redirect_field_name])
password_change(request[, template_name, post_change_redirect, password_change_form])
password_change_done(request[, template_name])
password_reset(request[, is_admin_site, template_name, email_template_name, password_reset_form,token_generator, post_reset_redirect, from_email])
password_reset_done(request[, template_name])
사용 예:
(
r'^change_passwd/$'
,
'django.contrib.auth.views.password_change'
,
{
   
'template_name'
:
'change_passwd.html'
,
   
'post_change_redirect'
:
'/'
,
}),
(
r'^reset_passwd/$'
,
'django.contrib.auth.views.password_reset'
,
{
   
'template_name'
:
'reset_passwd.html'
,
   
'email_template_name'
:
'reset_passwd_email.html'
,
   
'post_reset_redirect'
:
'/reset_done/'
,
   
'from_email'
:
'[email protected]'
,
}),
(
r'^reset_confirm/(?P[0-9A-Za-z]{1,13})-(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$'
,\
   
'django.contrib.auth.views.password_reset_confirm'
,
{
       
'template_name'
:
'reset_confirm.html'
,
       
'post_reset_redirect'
:
'/signin/'
,
   
}
),
(
r'^reset_done/$'
,
'django.views.generic.simple.direct_to_template'
,
{
'template'
:
'message.html'
,
'extra_context'
:
{
   
'msg'
:
_(
u'비밀번호 복구 절차를 포함하는 메일을 메일로 보냈습니다. 확인하세요'
),
}}),
참조:
Django 인증 모듈(auth)https://docs.djangoproject.com/en/1.3/topics/auth/
Django 설정 매개변수(setting)https://docs.djangoproject.com/en/1.3/ref/settings/#std:setting-LOGIN_URL

좋은 웹페이지 즐겨찾기