반응형
이 프로젝트도 마찬가지로 책 'Django 한 그릇 뚝딱'의 Chapter 4을 보며 실행해보았습니다. 책의 저자님께 다시 한 번 감사말씀 드립니다.
이메일 인증으로 회원가입 하기
컴퓨터 혹은 모바일을 통해서 사이트에 회원가입을 한 경험은 아마 다수가 가지고 있을 것입니다. 우리는 철저히 사용자의 입장이었지요. 그럼 개발자 입장에서 회원가입하는 프로세스를 생각해볼까요? 다양한 인증 방법 중에서 우리는 이메일 인증 방법에 대해서 생각해 보겠습니다.
- user(사용자)가 회원 가입 화면에 개인 정보를 입력, '회원 가입하기' 버튼 클릭
- 입력한 정보로 user 데이터 모델 추가 및 데이터베이스에 저장, 인증되지 않은 user로 등록
- 사용자가 입력한 이메일로 인증 코드 발송
- 발송된 인증 코드는 user이름과 함께 쿠키로 저장 후 인증 코드 화면으로 자동 전환
- user가 인증 코드를 입력하고 '인증하기'버튼 클릭 ▶ 성공(일치) / 실패(불일치) (쿠키방식과 세션방식이 있음)
- 성공 시 회원의 인증값 인증이 완료된 회원으로 등록, 계속 실패하면 회원정보 삭제
이러한 과정을 생각하면서 코드를 작성해보겠습니다. 먼저 user의 정보를 저장할 수 있는 model을 만들겠습니다.
데이터베이스 설정하기
- ExcelCalculate > main > models.py 로 이동하여 class 등록을 합니다.
class User(models.Model):
user_name = models.CharField(max_length=20)
user_email = models.EmailField(unique=True)
user_password = models.CharField(max_length=100)
user_validate = models.BooleanField(default=False)
- 저장 후, terminal에 다음 명령어를 차례대로 입력합니다.
python manage.py makemigrations
python manage.py migrate
python manage.py dbsehell
회원 가입 때 사용자 데이터 저장하기
- ExcelCalculate > main > templates > main > signup.html 로 이동합니다.
- 60번째 줄의 <form> 태그의 action값을 입력합니다.
- 이제 위의 url처리를 하러 가야겠지요?
- ExcelCalculate > main > urls.py 로 이동하여 다음의 path를 추가하며 signup에 대한 url처리를 합니다.
path('signup/join', views.join, name="main_join"),
- ExcelCalculate > main > views.py 로 이동하여 해당하는 사용자 정의 함수를 만듭니다. 중간중간 print 함수를 이용하여 코드 진행 상황을 점검할 수 있도록 하는 팁!( [ ] 안에 있는 name은 signup.html에 있는 name)
def join(request):
print("테스트", request)
name = request.POST['signupName']
email = request.POST['signupEmail']
pw = request.POST['signupPW']
user = User(user_name = name, user_email = email, user_password = pw)
user.save()
print("사용자 정보 저장 완료됨!")
return redirect("main_verifyCode")
- 저장 후, 웹 페이지에서 /signup 페이지로 들어간 후에 회원 가입 정보를 입력하고 회원가입 버튼을 누릅니다.
- 제대로 작동이 된다면 terminal에 다음과 같이 우리가 print()로 설정한 문구가 뜹니다. 그리고 웹 페이지도 다음처럼 바뀝니다.
- 그리고나서 ~/admin으로 웹 페이지를 이동합니다.
- 다음처럼 User 정보가 보이면 지금까지 잘 하고 있는 것입니다. User 모델이 User라고 등록되었습니다.
- 두 번째 사진에 있는 건 정보를 변경하고 save로 저장할 수 있습니다. 또한 Delete도 가능합니다.
지금까지 정말 수고 많으셨습니다.
다음시간에는 인증 코드를 생성하고 User의 메일로 발송하는 것을 실습해보겠습니다.
감사합니다.
'웹 개발 실습 > Django' 카테고리의 다른 글
[Django]_엑셀 계산 사이트 만들기 (4) 로그인 여부 확인, 로그아웃 (0) | 2023.08.02 |
---|---|
[Django]_엑셀 계산 사이트 만들기 (3) 이메일 인증 회원가입 하기 (0) | 2023.08.02 |
[Django]_엑셀 계산 사이트 만들기 (1) app의 웹 사이트, admin 화면 만들기 (0) | 2023.08.01 |
[Django]_맛집 공유 사이트 만들기 (3) 이메일 보내기 (0) | 2023.07.31 |
[Django]_맛집 공유 사이트 만들기 (2) READ, DELETE 그리고 Restaurant에 대한 CRUD (0) | 2023.07.30 |