기초 개념 및 기능 참조
Section 1. 회원가입 기능 구현
1. Form 생성
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F42d41e13-7e33-4a90-969e-32da13048d4d%2Fimage.png)
2. Template 생성
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fc839924d-9e5d-46d5-8fd9-b33cc5f5ad67%2Fimage.png)
3. Class-based View 생성
- FormView 상속 (from django.views.generic.edit import FormView)
- template_name - GET 요청 시 응답 template
- form_class - 해당 페이지에 보여질 form
- success_url - POST 요청에 대한 에러가 없을 시 redirect
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fc6a3935b-289a-4fa9-8995-af491e836312%2Fimage.png)
4. URL 파싱
- RegisterView.as_view() - 클래스를 처리 로직 view 로 접근하겠다는 의미
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fe688a45b-7c1a-4a6b-9297-02c5dd863244%2Fimage.png)
Section 2. 로그인 및 로그아웃 기능 구현
1. 로그인 Form 생성
- form.email = email
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F5a9743ea-24cb-45cf-8bb1-d768293912d9%2Fimage.png)
2. 로그인 Template 생성
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F0e529f7f-120e-460c-be09-b6b0a5474c76%2Fimage.png)
3. 로그인 Class-based View 생성
- form_valid() - 유효성 검사가 성공적일 때 수행되는 함수 (success_url 로 이동)
- form_valid() 함수 오버라이딩 후 super() 를 이용해서 원래 기능 또한 수행
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F6a5d55cb-3867-4dd8-a048-ae6158cd0721%2Fimage.png)
self.request.session['user'] = form.email # 1번 방법 (form.email에 email 값 저장되어있음)
self.request.session['user'] = form.data.get('email') # 2번 방법 (FormView 자동)
4. 로그아웃 View 생성
- if 문으로 제어하지 않을 시 user 가 없는 경우에 에러 발생
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F8b810d1c-5d7c-47ff-b6e0-bcb779952b1a%2Fimage.png)
5. 로그인 및 로그아웃 URL 파싱
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F9d286051-78ac-4a46-9b52-ce890b20b529%2Fimage.png)