일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프레임워크와 라이브러리의 차이
- UI한글변경
- k-eta
- EOF
- 알고리즘 공부방법
- string 함수
- correlation coefficient
- c++
- string 메소드
- 시간복잡도
- 구조체와 클래스의 공통점 및 차이점
- 장고란
- 자료구조
- Django의 편의성
- iOS14
- 2557
- Django란
- vscode
- getline
- scanf
- Django Nodejs 차이점
- 연결요소
- 엑셀
- 입/출력
- 백준
- 이분그래프
- 표준 입출력
- 입출력 패턴
- 매크로
- double ended queue
Archives
- Today
- Total
Storage Gonie
43. (app3) Django id, pw만 입력받는 회원가입 구현 본문
반응형
1. mysite/urls.py에서 url패턴 추가해줌
url(r'^accounts/signup$', kilogram_views.CreateUserView.as_view(), name="signup"), # 회원가입 화면
url(r'^accounts/signup/done$', kilogram_views.RegisteredView.as_view(), name="create_user_done"), # 회원가입이 완료된 화면
2. kilogram/views.py에서 CreateUserView 클래스를 생성
- 회원가입은 즉, CreateUserView클래스는 객체를 생성하는 뷰이므로 제네릭의 CreateView를 상속받아서 만듬
- 회원가입할 때 띄울 템플릿을 명시해주고 입력받은 폼은 장고에 미리 만들어져 있는 UserCreationForm을 이용한다. 단, 이는 Id와 pw만 띄워줌.
- 회원가입에 성공하면 어디로 이동할 지도 명시해준다.
- RegisteredView는 회원가입이 완료되면 화면만 띄워주므로 TemplateView를 상속받아 만들어주고, 보여질 템플릿을 명시해준다.
from django.views.generic.edit import CreateView
from django.contrib.auth.forms import UserCreationForm # 장고의 기본적인 회원가입 폼. id, password만 확인한다는 한계점.
from django.core.urlresolvers import reverse_lazy
class CreateUserView(CreateView): # 제네릭의 CreateView는 폼하고 연결돼서, 혹은 모델하고 연결돼서 새로운 데이터를 넣을 때 사용.
template_name = 'registration/signup.html' # 회원가입 할 때 띄울 폼 템플릿
form_class = UserCreationForm
success_url = reverse_lazy('create_user_done') # 성공하면 어디로 갈지, create_user_done은 url name
# 여기서 reverse가 아닌 reverse_lazy를 사용하는 이유: 제네릭뷰 같은경우 타이밍 문제 때문에 reverse_lazy를 사용해야함
class RegisteredView(TemplateView): # 회원가입이 완료된 경우
template_name = 'registration/signup_done.html'
3. 만들어둔 login.html 파일에 다음 라인을 추가해주어 로그인창에 회원가입 링크를 추가해줌
<br>
<p>아이디가 없으신가요?<a href="{% url 'signup' %}">회원가입</a></p>
4. templates/registration/signup.html생성
{% extends 'kilogram/base.html' %}
{% block content %}
<form method="post" action="{% url 'signup' %}">
{% csrf_token %}
<input type="hidden" name="next" value="" />
{{ form.as_p }}
<button type="submit">로그인</button>
</form>
{% endblock %}
5. templates/registration/signup_done.html생성
{% extends 'kilogram/base.html' %}
{% block content %}
<h2>회원가입이 완료되었습니다.</h2>
<br>
<a href="{% url 'login' %}">로그인하기</a>
{% endblock %}
반응형
'웹개발 > Django 웹서비스 개발(인프런)' 카테고리의 다른 글
45. (app3) Photo 모델 생성 / MEDIA_URL 설정 (0) | 2019.02.22 |
---|---|
44. (app3) Django id, pw만 입력받는 회원가입에서 email까지 입력받도록 추가 (0) | 2019.02.22 |
42. (app3) Django 로그인과 로그아웃 구현하기 (0) | 2019.02.22 |
41. (app3) 킬로그램 앱 초기화 (0) | 2019.02.21 |
40. app1, app2 앱 통합하기 (0) | 2019.02.21 |
Comments