본문 바로가기
Web/Django

[Web] ExcelCalculate with django for Mac - 2

by skwkiix 2023. 7. 31.
728x90
이 포스팅은 "Django 한그릇뚝딱"의 Chapter4 내용을 실습하며 정리한 내용이다.

 

관리자 페이지 설정(admin)

admin 페이지 설정 시, 웹 페이지에서 데이터들을 확인할 수 있다.

1. superuser 생성

  • python manage.py makemigrations
  • python manage.py migrate
  • python manage.py createsuperuser
Username: 
Email address: 
Password:

 

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


이메일 인증으로 회원가입 프로세스

  • 회원가입 화면에서 개인정보 입력 후, 회원가입하기 버튼 클릭
  • 해당 입력한 정보로 user 데이터 모델에 추가 및 DB 에 저장, 인증되지 않은 uwer로 등록
  • 입력한 이메일로 인증 코드 발송
  • Verify code 화면으로 전환
  • 사용자가 인증코드 입력, 인증하기 버튼을 클릭할 때, 일치하면 성공/일치하지 않으면 실패
    • 쿼리를 활용한 방식, 세션을 활용한 방식
  • 성공시, 회원의 이증값 인증이 완료된 회원 등록 / 실패 시, 회원정보 삭제

1. 모델 만들기

사용자 정보를 저장할 모델 생성

 

1) 모델 정의

이름, 이메일, 비밀번호, 인증여부

  • main > models.py
from django.db import models
​
# Create your models here.
# ExcelCalculate > main > models.py
​
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) #인증여부(기본값:인증되지 않은 값)

 

2) 모델 반영

  • python manage.py make migrations
$ python manage.py mage migrations
Migrations for 'main':
main/migrations/0001_initial.py
   - Create model User
  • python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, main, sessions
Running migrations:
Applying main.0001_initial... OK

2. 회원가입 사용자 데이터 DB에 저장

1) html 설정

회원가입 때 이동할 url 설정

  • action = signup/join
<div class="content">
           <div class="userInfoInputDiv">
               <h1> 회원가입 하기 </h1><br>
               <form action="signup/join" method="POST" id="signup-form">{% csrf_token %}

2) urls.py 설정

회원 가입 버튼 클릭 시, ~/signup/join url로 이동

  • path('signup/join',views.join, name = "main_join")
urlpatterns = [
   path('', views.index, name="main_index"), 
   path('signup', views.signup, name="main_signup"), 
   path('signup/join',views.join, name = "main_join"), #추가
   path('signin', views.signin, name="main_signin"),
   path('verifyCode', views.verifyCode, name="main_verifyCode"),
   path('verify', views.verify, name="main_verify"), 
   path('result', views.result, name="main_result"),
]

3) views.py 설정

join 함수 생성

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")

4) User admin에 등록

모델 등록

  • main > admin.py
from django.contrib import admin
from .models import *
​
# Register your models here.
admin.site.register(User) # 추가

5) 등록 확인

회원가입 후, /admin 페이지에 접근해서 등록되어 있는지 확인

  • 회원 가입 /signup

  • /admin