<aside> 💡 #forms #views #signup #urls #app_name #urlpatterns

</aside>

3.1 Sign up

forms.py

사용자가 회원가입을 할 때 필요한 필드들과 유효성 검사를 정의합니다. 필수 module과 import를 정의해야 합니다. SignUpForm을 사용하면 사용자가 사용자명, 이메일, 비밀번호, 비밀번호 확인을 제공하여 회원가입할 수 있습니다.

from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User

class SignUpForm(UserCreationForm):
	email = forms.EmailField(required=True)

	class Meta:
		model = User
		fields = ('username', 'email', 'password1', 'password2')

views.py

사용자 요청을 처리하고, 데이터를 가공하여 템플릿에 전달하거나 HTTP 응답을 반환합니다. 필수 module과 import를 정의해야 합니다.

from django.shortcuts import render, redirect
from .forms import SignUpForm
from django.contrib.auth import login

signup 함수의 정의

def signup(request):
	if request.method == 'POST':
		form = SignUpForm(request.POST)
		if form.is_valid():
			user = form.save()
			# 폼 데이터를 저장하고 새로운 사용자를 생성
			login(request, user)
			return redirect('home')
	else:
		# 요청 방식이 POST가 아닌 경우,
		form = SignUpForm():
	
	return render(request, 'signup.html', {'form': form})
	# 'signup.html' 템플릿을 렌더링하고, 폼 객체를 'form' 컨텍스트 변수로 전달

urls.py

URL 매핑을 정의합니다. 클라이언트의 요청을 처리할 뷰 함수나 클래스로 연결해주는 역할을 합니다.

from django.urls import path
from users.views import signup
# 'users'앱의 views.py 파일에서 signup 함수를 임포트합니다.

app_name = 'users'
# 앱의 이름을 정의합니다.

urlpatterns = [
	path('signup/', signup, name='signup'),
]