교재홍보
- 다음의 교재를 바탕으로 실습이 이루어질 예정이다.
- 교재 구매 : https://www.yes24.com/Product/Goods/83568594
이전 내용 확인
- 이 글이 처음이라면 이전 블로그를 참조하길 바랍니다.
- 첫번째 글 : https://ls-alt.tistory.com/13
2. 이메일 인증으로 회원가입(1)
1) super user 생성
- 모델의 변경사항을 DB에 적용하기 위해 다음의 코드 실행
$ python manage.py makemigrations
# migration 생성
$ python manage.py migrate
# migration 적용
- 다음의 코드를 실행하고 유저정보를 입력하여 슈퍼유저 계정을 생성한다.
- http://127.0.0.1:8000/admin으로 관리자 페이지에 접속하여 슈퍼유저 계정으로 로그인
2) DB 생성
- user정보 저장을 위한 DB를 생성해준다.
- django 서버에 반영하기 위해 다음의 코드 실행
$ python manage.py makemigrations
$ python manage.py migrate
3) User 생성 후 DB에 저장
웹상에서 회원가입 한 데이터를 DB에 저장하고 사이트에 나타내기 위해 코드를 수정한다.
- main > templates > main > signup.html의 60번째 라인 수정
- 수정 전
<form action="" method="POST" id="signup-form">{% csrf_token %}
- 수정 후
<form action="signup/join" method="POST" id="signup-form">{% csrf_token %} # action값을 signup/join으로 설정해 회원가입 버튼을 클릭해 발생하는 요청이 이동할 url을 지정한다.
- main > urls.py 수정
- 수정 전
path('signup', views.signup, name="main_signup"),
- 수정 후
path('signup', views.signup, name="main_signup"), path('signup/join', views.join, name='main_join'), # signup.html을 통해 들어온 요청을 views.py의 join함수로 전달한다.
- views.py 수정
- 수정 전
from django.shortcuts import render, redirect . . . def signup(request): return render(request, 'main/signup.html')
- 수정 후
from django.shortcuts import render, redirect from .models import * # User 모델의 사용을 위해 작성 . . . def join(request): name = request.POST['signupName'] # 버튼 클릭으로 발생하는 사용자 요청에서 # signup.html의 input 태그 중 name='signupName'에 해당하는 데이터를 # name이라는 변수에 할당해준다. email = request.POST['signupEmail'] pw = request.POST['signupPW'] user = User(user_name = name, user_email = email, user_password = pw) # 사용자 요청으로부터 할당한 name, email, pw변수들을 # User 모델의 속성에 맞춰 입력해 새로운 데이터를 생성하고 # 이 데이터를 user변수에 할당한다. user.save() print('사용자 정보 저장 완료') return redirect('main_verifyCode') # urls.py에 존재하는 path('verifyCode', views.verifyCode, name="main_verifyCode")코드의 # name과 맞추어 urls.py로 redirect하고 다시 views.py의 verifyCode함수로 진행하며 MVC패턴에 따른다.
- admin.py 수정
- 수정 전
from django.contrib import admin # Register your models here.
- 수정 후
from django.contrib import admin from .models import * # Register your models here. admin.site.register(User) # join함수를 통해 User 모델에 저장한 데이터를 관리자 페이지에 등록한다.
5) 웹페이지 실행
- http://127.0.0.1:8000/signup로 접속하여 회원가입을 진행한다.
- 모델의 변경사항을 DB에 적용하기 위해 다음의 코드 실행
$ python manage.py makemigrations
# migration 생성
$ python manage.py migrate
# migration 적용
- http://127.0.0.1:8000/admin에 접속하여 Main의 Users 클릭
- 다음과 같이 회원가입을 진행한 유저정보를 확인할 수 있다.
'Django' 카테고리의 다른 글
Django - 엑셀계산 사이트 만들기(4) (0) | 2023.08.02 |
---|---|
Django - 엑셀계산 사이트 만들기(3) (0) | 2023.08.01 |
Django - 엑셀계산 사이트 만들기(1) (0) | 2023.07.31 |
Django를 통한 웹개발(5) (0) | 2023.07.27 |
Django를 통한 웹개발(4) (0) | 2023.07.27 |