-
[Django] user api (get, put) 만들기파이썬/Django 2023. 1. 17. 16:35728x90반응형
api 만들기
[GET, PUT] /users/me :
사용자가 자신의 개인정보를 확인하고 수정할 수 있는 api
1. urls.py 파일에 url 연결하기
- config path와 연결하기
from django.urls import path
from . import views urlpatterns = [ path("me", views.Me.as_view()), ]
위처럼 users 폴더의 views 파일을 가져와서 path에 연결한다.
views.py의 Me 라는 클래스를 연결해줌
2. views.py 파일 설정하기
from rest_framework.response import Response from rest_framework.views import APIView from rest_framework import status from rest_framework.permissions import IsAuthenticated from . import serializers
status : http status에 관한 작업을 위한 코드
- [GET] /users/me
class Me(APIView): permission_classes = [IsAuthenticated] def get(self, request): user = request.user serializer = serializers.PrivateUserSerializer(user) return Response(serializer.data)
PrivateUserSerializser를 이용해 user데이터 번역후 리턴한다.
- [PUT] /users/me
class Me(APIView): def put(self, request): user = request.user serializer = serializers.PrivateUserSerializer( user, data=request.data, partial=True, ) if serializer.is_valid(): user = serializer.save() serializer = serializers.PrivateUserSerializer(user) return Response(serializer.data) else: return Response(serializer.errors)
3. serializers.py에 user/me에 보여줄 정보 설정
class PrivateUserSerializer(ModelSerializer): class Meta: model = User exclude = ( "password", "is_superuser", "id", "is_staff", "is_active", "first_name", "last_name", "groups", "user_permissions", )
LIST'파이썬 > Django' 카테고리의 다른 글
[Django] API test | API 잘 작동하는지 테스트하기 (0) 2023.01.23 [Django] 인증 Authentication (0) 2023.01.23 [Django] Permission_classes 사용하여 인증하기 (feat.DRF) (0) 2023.01.16 [Django] APIView로 api 만들기 (0) 2023.01.13 [Django] Model View Sets 사용하기 (0) 2023.01.12