IMG-LOGO
공지사항 :

Python Django를 이용해 간단한 로그인 페이지

lmkfox - 2025-05-12 06:41:54 38 Views 0 Comment

✅ 1. 프로젝트 및 앱 생성

# 가상환경 생성 및 활성화 (선택)
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# Django 설치
pip install django

# 프로젝트 생성
django-admin startproject login_project
cd login_project

# 앱 생성
python manage.py startapp accounts


✅ 2. settings.py 설정

login_project/settings.py에 다음 추가:

INSTALLED_APPS = [
    ...
    'accounts',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

# 로그인 성공 후 이동할 URL
LOGIN_REDIRECT_URL = '/dashboard/'
LOGOUT_REDIRECT_URL = '/login/'

# 로그인 URL 설정 (login_required 사용 시)
LOGIN_URL = '/login/'


✅ 3. URL 설정

프로젝트 단위 (

login_project/urls.py

)

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('accounts.urls')),
]


✅ 4. accounts 앱 내부 URL 설정

accounts/urls.py 생성:

from django.urls import path
from . import views
from django.contrib.auth import views as auth_views

urlpatterns = [
    path('login/', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'),
    path('logout/', auth_views.LogoutView.as_view(), name='logout'),
    path('dashboard/', views.dashboard, name='dashboard'),
]


✅ 5. 뷰(View) 정의

accounts/views.py

from django.contrib.auth.decorators import login_required
from django.shortcuts import render

@login_required
def dashboard(request):
    return render(request, 'accounts/dashboard.html')


✅ 6. 템플릿 파일 생성

accounts/templates/accounts/ 디렉토리를 만들고 다음 템플릿 생성:

login.html

<!DOCTYPE html>
<html>
<head>
    <title>로그인</title>
</head>
<body>
    <h2>로그인 페이지</h2>

    {% if form.errors %}
        <p style="color: red;">아이디 또는 비밀번호를 다시 확인하세요.</p>
    {% endif %}

    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">로그인</button>
    </form>
</body>
</html>

dashboard.html

<!DOCTYPE html>
<html>
<head>
    <title>대시보드</title>
</head>
<body>
    <h2>{{ user.username }}님, 환영합니다.</h2>

    <form method="post" action="{% url 'logout' %}">
        {% csrf_token %}
        <button type="submit">로그아웃</button>
    </form>
</body>
</html>


✅ 7. 마이그레이션 및 슈퍼유저 생성

python manage.py migrate
python manage.py createsuperuser


✅ 8. 서버 실행

python manage.py runserver

브라우저에서 http://127.0.0.1:8000/login/으로 접속하여 로그인 화면을 확인할 수 있습니다.


✅ 요약

  • Django 기본 인증 시스템(django.contrib.auth) 활용

  • LoginView, LogoutView를 커스터마이징 없이 사용

  • @login_required를 통해 인증된 사용자만 대시보드 접근 가능


댓글