장고(Django)는 기본적으로 사용자 등록, 로그인(인증), 로그아웃 등 사용자 관리를 위한 모든 객체(django.contrib.auth)와 DB 구성을 제공한다. 공식 위키의 Using the Django authentication system 참고하였다.
/p>
작년에 장고(Django) 프레임워크로 프로젝트를 진행하면서 공부했던 개발 지식을 블로그에 다시 정리하려고 합니다. 개인 위키에 정리했던 것을 옮기는 수준이라, 친절한 설명은 기대하기 어렵고, 프로그래밍 언어와 파이썬 지식이 어느정도 있어야 이해할 수 있을 것입니다.
아래 내용들은 Django 1.6~1.7 버전을 기준으로하고, "쉽고 빠른 웹개발 Django"란 책에서 1/3, 공식 위키에서 1/3, 그리고 나머지는 구글링을 바탕으로 정리한 지식입니다. 말투가 존대와 반말이 섞여있어도 이해바랍니다 :)
1 사용자 관리 구현 방법
2 사용자 관리 Views
3 사용자 로그인
4 사용자 로그아웃
5 사용자 비밀번호 변경
6 사용자 가입
1 사용자 관리 구현 방법
첫째, 장고에서 제공하는 사용자 관리 기능을 그대로 사용하는 방법
- 보다 간편하게 구현 가능하지만, 세부적 수정이 어려움
둘째, (상속받은) 폼과 프로세스를 커스터마이징 하는 방법
- 보다 직접적으로 수정가능하지만, 더 많은 코딩이 필요함
- request.user
2 사용자 관리 Views
참고 : django.contrib.auth.views
views (컨트롤러) | 설명 |
---|---|
login | 로그인 처리 |
logout | 로그아웃 후 템플릿 출력 |
logout_then_login | 로그아웃 후에 다시 로그인 페이지로 이동 |
password_change | 비밀번호 변경 폼 출력 |
password_change_done | 비밀번호가 정상적으로 변경된 후 출력 |
password_reset | 새로운 비밀번호를 이메일로 전달 |
password_reset_done | 비밀번호 리셋 후 출력 |
password_reset_confirm | 비밀번호를 리셋하는 폼 출력 |
password_reset_complete | 비밀번호 리셋 폼에서 정상적으로 리셋된 후 출력 |
redirect_to_login | 로그인 페이지로 이동 |
User 관련 주요 함수
3 사용자 로그인
장고에서 제공하는 사용자 관리 기능을 그대로 사용하는 첫번째 방법 사용함
URL 지정
django.contrib.auth.views에는 세션과 인증에 관한 다양한 뷰가 존재함
뷰 코드
django.contrib.auth.views.login에서 기본 제공하는 것이 사용됨
템플릿 코드
/템플릿폴더/registration/login.html
4 사용자 로그아웃
URL 지정
django.contrib.auth.views에는 세션과 인증에 관한 다양한 뷰가 존재함
뷰 코드
템플릿 코드
리다이렉트 되도록 만들었기 때문에 템플릿 없음
5 사용자 비밀번호 변경
비밀번호를 변경하는 폼 페이지와 변경완료 됐을 때 리다이렉트 되는 페이지로 구성됨
장고에서 제공하는 사용자 관리 기능을 그대로 사용하는 첫번째 방법 사용함.
URL 지정
뷰 코드
django.contrib.auth.views.password_change 와 password_change_done 에서 기본 제공하는 것이 사용됨
템플릿 코드
/템플릿폴더/registration/password_change_form.html
/템플릿폴더/registration/password_change_done.html
6 사용자 가입
(상속받은) 폼과 프로세스를 커스터마이징 하는 두번째 방법을 사용함
URL 지정
forms.py 생성
forms.py는 forms.Form을 상속받아 RegistrationForm 구현
뷰 코드
템플릿 코드
폼 객체를 출력하기 위해서 form.as_table, form.as_p, form.as_ul 사용
'IT > └ 장고(Django) 개발' 카테고리의 다른 글
장고(Django) 개발: JQuery를 이용한 Ajax와 Autocomplete 예제 (0) | 2015.01.17 |
---|---|
장고(Django) 개발: 폼(Form) 관리와 CSRF 취약점 해결 (2) | 2015.01.13 |
장고(Django) 개발: 권한(permission) 화면 관리 (0) | 2015.01.12 |
장고(Django) 개발: 관리자(Admin) 화면 관리 (0) | 2015.01.11 |
장고(Django) 개발: MVC 패턴, 템플릿(Template) (0) | 2015.01.10 |
장고(Django) 개발: MVC 패턴, 뷰(View) (0) | 2015.01.10 |
장고(Django) 개발: MVC 패턴, 모델(Model) (0) | 2015.01.09 |
장고(Django) 개발: 프로젝트 시작과 구성 (0) | 2015.01.09 |