인증django 사용자 인증auth모듈의 흔한 방법 사용.
24730 단어 django
django로 일부 낡은 시스템을 개조할 때 원래의 사용자 디자인은django의auth모듈의 사용자 테이블에 따라 그렇게 설계할 수 없다. 물론 당신은 그렇게 억지로 확장할 수 있지만 다른 시스템에 영향을 주지 않을 것을 보장해야 하기 때문에 많은 상황에서 원래의 테이블 구조가 변하지 않고 사용자가 직접 작성하고 권한 관리라는 부분을 유지해야 한다.이전에session을 스스로 정의하는 방식을 쓴 적이 있습니다:django는 session을 사용자 정의하고 장식 모드를 사용하여django 자체의 @loginrequired 유사 기능.만약 새로 개발한 응용 프로그램이라면django 자체의 장식 방법으로 로그인 여부를 판단하는 방법:
rom django.shortcuts import render
from programm.models import *
from django.contrib.auth.decorators import login_required
def index(request):
return render(request, 'index.html')
@login_required
def liste(request):
return render(request, 'liste.html', {'lObj': myModel.objects.all()})
여기서 바로 @loginrequired로 장식하지만, 이러한 상황의 전제는 DJANGO의 autho 프레임워크를 이용하여 사용자 관리를 실현해야 한다는 것이다.
from django.contrib.auth import authenticate, login
def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
# Redirect to a success page.
else:
# Return a 'disabled account' error message
else:
# Return an 'invalid login' error message.
이 밖에도 몇 가지 방법이 있다.
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' , '),
}}),
출처:http://www.yihaomen.com/, 원래 주소:http://www.yihaomen.com/article/python/480.htm, 원작자 공유에 감사 드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django의 질문 및 답변 웹사이트환영 친구, 이것은 우리의 새로운 블로그입니다. 이 블로그에서는 , 과 같은 Question-n-Answer 웹사이트를 만들고 있습니다. 이 웹사이트는 회원가입 및 로그인이 가능합니다. 로그인 후 사용자는 사용자의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.