DRF 로그인, 로그아웃, 회원가입 패키지 설치
## 로그인/로그아웃, 회원가입
- pip install django-rest-auth django-allauth
django-rest-auth : 로그인과 로그아웃
django-allauth : 회원가입
API 전용 checks 앱 생성
## 앱 생성
- python manage.py startapp checks
morning_bot/urls.py
URL 추가
urlpatterns = [
path('admin/', admin.site.urls),
path('checks/', include('checks.urls')),
path('rest-auth/', include('rest_auth.urls')), # 로그인, 로그아웃
path('rest-auth/signup/', include('rest_auth.registration.urls')), # 회원가입
]
INSTALLED_APPS에 API 추가
morning_bot/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# DRF
'rest_framework',
'rest_framework.authtoken',
# rest_auth + allauth
'rest_auth',
'allauth',
'allauth.account',
'rest_auth.registration',
# Mt Apps
'accounts',
'checks',
]
settings.py 가장 하단에 토큰 추가
moring_bot/settings.py
# 가장 아랫줄
# DRF auth settings
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
]
}
serializers.py 예시 파일 작성
checks/serializers.py
from rest_framework import serializers
from .models import Check_list
class CheckListSerializer(serializers.ModelSerializer):
class Meta:
model = Check_list
fields = ['id', 'content', 'place', 'stufflist']
class CheckSerializer(serializers.ModelSerializer):
class Meta:
model = '__all__'
로그인, 로그아웃, 회원가입을 위한 view 작성
checks/views.py
from django.shortcuts import get_object_or_404
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .serializers import CheckListSerializer, CheckSerializer
from .models import Check_list
@api_view(['GET'])
def check_list(request):
checks = Check_list.objects.all()
serializer = CheckListSerializer(checks, many=True)
return Response(serializer.data)
@api_view(['GET'])
def check_detail(request, check_pk):
check = get_object_or_404(Check_list, pk=check_pk)
serializer = CheckSerializer(check)
return Response(serializer.data)
@api_view(['POST'])
def create_check(request):
serializer = CheckSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response(serializer.data)
http://127.0.0.1:8000/rest-auth/signup/ 로 접속 해서 회원가입 기능 확인
http://127.0.0.1:8000/rest-auth/login/ 로 접속해서 로그인 확인
다음과 같이 키값이 생기면 성공
SQLite 에서 유저 DB 추가 확인
추가되었으면 완료
마지막으로 http://127.0.0.1:8000/rest-auth/logout/ 에서 로그아웃 성공 확인
모두 성공했으면 DRF REST API 로그인, 로그아웃 회원가입 만들기 끝!
추가적으로 DRF REST API 에서 URL에는 언더바 ( _ ) 를 안쓰고 하이픈 ( - ) 을 사용해야하고
URL 마지막에 슬래시 ( / ) 를 포함하면 안된다고 하네요 ㅠㅠ
혹시 프로젝트로 만드실분들은 수정해서 사용하면 됩니다!

'Python > Django' 카테고리의 다른 글
Django Celery 사용 (0) | 2025.02.28 |
---|---|
[python] Django postman 사용 (0) | 2024.08.14 |
VScode Windows Django 환경 세팅 (0) | 2024.08.01 |
[Django Error] importError: django.conf.url 호출에러 (0) | 2023.08.07 |