IT
Python Django를 이용해 간단한 로그인 페이지
✅ 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를 통해 인증된 사용자만 대시보드 접근 가능
댓글
아직 댓글이 없습니다.
로그인 후 댓글을 남길 수 있습니다.