상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 파이썬 장고에서 사용자 인증(Authentication)을 구현하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
파이썬 Django에서 사용자 인증(Authentication)을 구현하는 방법에 대해 알아보겠습니다. Django는 기본적으로 강력한 사용자 인증 시스템을 제공하며, 이를 통해 로그인, 로그아웃, 사용자 등록, 비밀번호 변경 등의 기능을 쉽게 구현할 수 있습니다. 1. Django 프로젝트 설정먼저 Django 프로젝트를 설정해야 합니다. 아래의 명령어로 새로운 Django 프로젝트를 생성합니다.```bashdjango-admin startproject myprojectcd myproject```그 다음, 새로운 앱을 생성합니다.```bashpython manage.py startapp accounts``` 2. <a href='https://sangseek.com/sangseeks/앱 등록/ko'>앱 등록</a>`settings.py` 파일에 생성한 앱을 등록합니다. `INSTALLED_APPS` 리스트에 `'accounts'`를 추가합니다.```python# myproject/settings.pyINSTALLED_APPS = [ ... 'accounts',]``` 3. 사용자 모델 설정 (선택 사항)Django는 기본 사용자 모델을 제공하지만, 필요에 따라 커스텀 사용자 모델을 만들 수 있습니다. 커스텀 사용자 모델을 만들려면 `accounts/models.py`에 다음과 같이 정의합니다.```python# accounts/models.pyfrom django.contrib.auth.models import AbstractUserfrom django.db import modelsclass CustomUser(AbstractUser): # 추가 필드를 여기에 정의할 수 있습니다. pass```그리고 `settings.py`에서 사용자 모델을 지정합니다.```python# myproject/settings.pyAUTH_USER_MODEL = 'accounts.CustomUser'``` 4. 사용자 등록 폼 만들기사용자 등록을 위한 폼을 생성합니다. `accounts/forms.py` 파일을 생성하고 다음과 같이 작성합니다.```python# accounts/forms.pyfrom django import formsfrom django.contrib.auth.forms import UserCreationFormfrom .models import CustomUserclass CustomUserCreationForm(UserCreationForm): class Meta: model = CustomUser fields = ('username', 'email', 'password1', 'password2')``` 5. 뷰(View) 작성사용자 등록과 로그인을 위한 뷰를 작성합니다. `accounts/views.py` 파일에 다음과 같이 작성합니다.```python# accounts/views.pyfrom django.shortcuts import render, redirectfrom django.contrib.auth import login, authenticatefrom .forms import CustomUserCreationFormdef register(request): if request.method == 'POST': form = CustomUserCreationForm(request.POST) if form.is_valid(): user = form.save() login(request, user) return redirect('home') # 홈 페이지로 리다이렉트 else: form = CustomUserCreationForm() return render(request, 'accounts/register.html', {'form': form})def login_view(request): # 로그인 처리 로직을 여기에 추가 pass``` 6. URL 설정`accounts/urls.py` 파일을 생성하고 URL 패턴을 추가합니다.```python# accounts/urls.pyfrom django.urls import pathfrom .views import register, login_viewurlpatterns = [ path('register/', register, name='register'), path('login/', login_view, name='login'),]```그리고 `myproject/urls.py`에 `accounts` 앱의 URL을 포함시킵니다.```python# myproject/urls.pyfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), path('accounts/', include('accounts.urls')),]``` 7. 템플릿 작성템플릿을 만들어 사용자 등록 폼을 표시합니다. `accounts/templates/accounts/register.html` 파일을 생성하고 다음과 같이 작성합니다.```html<!-- accounts/templates/accounts/register.html --><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Register</title></head><body> <h2>Register</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Register</button> </form></body></html>``` 8. 마이그레이션 및 서버 실행모델을 마이그레이션하고 서버를 실행합니다.```bashpython manage.py makemigrationspython manage.py migratepython manage.py runserver```이제 `/accounts/register/` URL로 이동하면 사용자 등록 폼을 볼 수 있습니다. 9. 로그인 및 로그아웃 <a href='https://sangseek.com/sangseeks/기능 추가/ko'>기능 추가</a>로그인 및 로그아웃 기능을 추가하려면 Django의 내장 인증 뷰를 사용할 수 있습니다. `accounts/views.py`에 로그인 및 로그아웃 뷰를 추가합니다.```pythonfrom django.contrib.auth.views import LoginView, LogoutViewclass CustomLoginView(LoginView): template_name = 'accounts/login.html'class CustomLogoutView(LogoutView): next_page = 'home' # 로그아웃 후 리다이렉트할 페이지```URL 패턴에 로그인 및 로그아웃을 추가합니다.```python# accounts/urls.pyfrom .views import register, CustomLoginView, CustomLogoutViewurlpatterns = [ path('register/', register, name='register'), path('login/', CustomLoginView.as_view(), name='login'), path('logout/', CustomLogoutView.as_view(), name='logout'),]```로그인 템플릿을 추가합니다.```html<!-- accounts/templates/accounts/login.html --><!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Login</title></head><body> <h2>Login</h2> <form method="post"> {% csrf_token %} {{ form.as_p }} <button type="submit">Login</button> </form></body></html>``` 결론이제 Django에서 기본적인 사용자 인증 시스템을 구현했습니다. 사용자 등록, 로그인, 로그아웃 기능을 포함하여, 필요에 따라 추가적인 기능을 구현할 수 있습니다. Django의 강력한 인증 시스템을 활용하여 안전하고 효율적인 웹 애플리케이션을 개발해 보세요!
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기