✅ 사용자 관리와 로그인 - 회원가입 기능 만들기 ✅
1. user model을 사용한 회원가입 절차 만들기
➡️ 회원가입 페이지를 보여주는 url : 'sign-up'/ 'GET' 방식 (값을 읽어옴)
➡️ 가입정보를 입력하고 전송 하는 url은 동일하게 'sign-up'/ 'POST'방식 (값을 주거나 수정,삭제 요청)
2. user의 views.py sign_up_view에 POST 추가하기
# user/views.py
def sign_up_view(request):
if request.method == 'GET': # GET 메서드로 요청이 들어 올 경우
return render(request, 'user/signup.html')
elif request.method == 'POST': # POST 메서드로 요청이 들어 올 경우
return ""
3. HTML에서 form태그 설정
➡️ signup.html의 <form>태그 의 속성에 method와 action을 추가
<!-- 윗 부분 생략 -->
<div class="wrap">
<h2 class="title-center"> 회원가입 </h2>
<form class="form-area" method="post" action="/sign-up/">
{% csrf_token %}
<div class="form-group mt-2 mb-2">
<label for="username">이름</label>
<input type="text" class="form-control" id="username" name="username">
</div>
<div class="form-group mt-2 mb-2">
<!-- 아랫 부분 생략 -->
➡️ <button type="submit" class="btn btn-primary">회원가입</button>버튼 : form태그의 method로 action에 데이터를 보내주는 역할을 한다.
➡️ {% csrf_token %} : POST 할 때 보안을 위해 사용!
4. user의 views.py에서 전송되는 데이터 받아서 저장하기
➡️ username, password, password2, bio => sign_up_view()함수
➡️ html에서 넘겨준 데이터를 views.py에서 받아준다.
➡️ password와 password2가 일치하는지 확인 해 주고, 일치하면 저장.
from django.shortcuts import render, redirect
from .models import UserModel
def sign_up_view(request):
if request.method == 'GET':
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
password2 = request.POST.get('password2', None)
bio = request.POST.get('bio', None)
if password != password2:
return render(request, 'user/signup.html')
else:
new_user = UserModel()
new_user.username = username
new_user.password = password
new_user.bio = bio
new_user.save()
return redirect('/sign-in')
➡️ redirect 함수 => 저장 완료 되었다면 로그인 페이지 /sign-in url로 이동.
'Language&Framework > Django' 카테고리의 다른 글
Django | 개념 정리_3주차_1. 만든 User모델 업그레이드 하기 (0) | 2022.09.27 |
---|---|
Django | 개념 정리_2주차_6. 사용자 관리와 로그인 - 로그인 기능 (0) | 2022.09.27 |
Django | 개념 정리_2주차_4. 사용자 관리와 로그인 - 화면 띄우기 (0) | 2022.09.27 |
Django | 개념 정리_2주차_3. Django Admin 기능 (0) | 2022.09.26 |
Django | 개념 정리_2주차_2. DB연결하기 (0) | 2022.09.26 |