본문 바로가기
웹 개발 실습/Django

[Django]_엑셀 계산 사이트 만들기 (2) 회원가입 하기

by ssolLEE 2023. 8. 2.
반응형

이 프로젝트도 마찬가지로 책 'Django 한 그릇 뚝딱'의 Chapter 4을 보며 실행해보았습니다. 책의 저자님께 다시 한 번 감사말씀 드립니다.

 

이메일 인증으로 회원가입 하기

 

컴퓨터 혹은 모바일을 통해서 사이트에 회원가입을 한 경험은 아마 다수가 가지고 있을 것입니다. 우리는 철저히 사용자의 입장이었지요. 그럼 개발자 입장에서 회원가입하는 프로세스를 생각해볼까요? 다양한 인증 방법 중에서 우리는 이메일 인증 방법에 대해서 생각해 보겠습니다. 

 

  1. user(사용자)가 회원 가입 화면에 개인 정보를 입력, '회원 가입하기' 버튼 클릭
  2. 입력한 정보로 user 데이터 모델 추가 및 데이터베이스에 저장, 인증되지 않은 user로 등록
  3. 사용자가 입력한 이메일로 인증 코드 발송
  4. 발송된 인증 코드는 user이름과 함께 쿠키로 저장 후 인증 코드 화면으로 자동 전환
  5.  user가 인증 코드를 입력하고 '인증하기'버튼 클릭 ▶ 성공(일치) / 실패(불일치) (쿠키방식과 세션방식이 있음)
  6. 성공 시 회원의 인증값 인증이 완료된 회원으로 등록, 계속 실패하면 회원정보 삭제

이러한 과정을 생각하면서 코드를 작성해보겠습니다. 먼저 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

main_user가 보입니다.

 

회원 가입 때 사용자 데이터 저장하기

 

  • ExcelCalculate > main > templates > main > signup.html 로 이동합니다.
  • 60번째 줄의 <form> 태그의 action값을 입력합니다.

회원 가입 버튼을 누르면 ~/signup/join이라는 url로 이동한다.

  • 이제 위의 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의 메일로 발송하는 것을 실습해보겠습니다.

 

감사합니다.