Django

Chapter 3-6 Django 회원가입(SignUp) 페이지 만들기

Chansman 2025. 5. 6. 18:28

🧾 Django 회원가입(SignUp) 페이지 만들기

1️⃣ App 분리: 회원가입 전용 member 앱 생성

python manage.py startapp member

→ 기능별로 앱을 분리하면 유지보수와 확장에 유리합니다.

📌 settings.py에 앱 등록:

OWN_APPS = [
    'blog',
    'member',  # 추가
]
INSTALLED_APPS = DJANGO_APPS + OWN_APPS + THIRD_PARTY_APPS

2️⃣ 회원가입 뷰 작성 (member/views.py)

from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render, redirect
from django.conf import settings

def sign_up(request):
    # POST 요청이면 입력 값으로 폼 생성, 아니면 빈 폼 생성
    form = UserCreationForm(request.POST or None)

    if form.is_valid():
        form.save()
        return redirect(settings.LOGIN_URL)  # 로그인 페이지로 리다이렉트

    context = {'form': form}
    return render(request, 'registration/signup.html', context)

📌 UserCreationForm은 Django가 제공하는 기본 회원가입 폼
📌 유효성 검사를 통해 아이디 중복, 비밀번호 확인 등 처리됨


3️⃣ 회원가입 템플릿 구성 (signup.html)

경로: templates/registration/signup.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>회원가입</title>
</head>
<body>
    <h1>회원가입</h1>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">가입하기</button>
    </form>
</body>
</html>

📌 form.as_p를 통해 각 필드가 <p> 태그로 출력됨
📌 CSRF 토큰 필수 포함


4️⃣ URL 연결 (urls.py)

from django.contrib import admin
from django.urls import path, include
from blog import views
from member import views as member_views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.blog_list, name='blog_list'),
    path('<int:pk>/', views.blog_detail, name='blog_detail'),
    path('accounts/', include('django.contrib.auth.urls')),

    # 회원가입 경로 추가
    path('signup/', member_views.sign_up, name='signup'),
]

📌 로그인/로그아웃은 auth.urls를 통해 제공됨
📌 회원가입은 직접 뷰를 만들어 연결


5️⃣ 로그인 설정 (settings.py)

LOGIN_URL = '/accounts/login/'  # 회원가입 후 이동할 로그인 경로

✅ 확인 체크리스트

항목 설명

member 앱 생성 ✅ startapp member
회원가입 뷰 작성 ✅ UserCreationForm 활용
signup.html 구성 ✅ CSRF 포함, 버튼 작성
URL 연결 ✅ path('signup/', ...) 추가
settings.py 설정 ✅ LOGIN_URL 지정

💬 Django 기본 인증 기능을 활용하면 회원가입도 손쉽게 구현할 수 있습니다. 유효성 검사와 보안이 내장되어 있어 매우 안정적이에요!