개발을 파헤치다(101)
-
ViewSet의 request 객체 파헤치기
ViewSet의 각 메서드에는 모두 Request라는 객체가 인자값으로 포함되어 있습니다. 이것은 사용자가 보낸 요청에 관한 모든 정보를 포함하고 있는 객체입니다. 기본적으로 Request 객체는 Mutable 속성이 False로 설정되어 있습니다. 이것이 의미하는 바는 Request의 값들은 수정이 불가능하다는 것입니다. 먼저 ViewSet으로 전달된 Request 객체에 어떤 값들이 포함되어 있는지 살펴봅니다. 위의 수 많은 요소들 중 자주 사용하게될 속성들을 살펴보면 다음과 같습니다. FILES → HTTP Multi-part Form으로 전송된 파일이 리스트 형태로 들어있습니다. POST → HTTP POST 필드값이 Query Dict 형태로 들어있습니다. user → 요청을 보낸 주체의 Mod..
2018.05.11 -
super()의 create() 메서드에 임의의 POST 데이터 넣기
Django REST Framework는 개발자의 생산성 향상을 위해 내부적으로 다양한 처리들을 제공합니다. POST 필드값들의 유효성 검사부터 Serializer를 통해 Model Instance의 생성 및 삭제까지 모두 기본적으로 제공하고 있습니다. 이것만 봐도 Django REST Framework가 추구하는 방향성을 알 수 있습니다. 바로 뛰어난 생산성이죠. 많은 프로젝트에서 반복적으로 구현해야 하는 기본적인 것들을 모두 제공하고, 필요에 따라 개발자들이 Customizing을 하여 사용할 수 있도록 한 것입니다. 그렇기 때문에 Django REST Framework(이하 DRF)의 장점을 극대화하여 사용하려면 최대한 기본적으로 제공해주는 메서드를 활용하는 것이 좋습니다. 이번에는 REST API..
2018.05.10 -
Django REST Framework를 사용하다 - 3
Django REST Framework를 사용하기 위해서는 몇 가지 사항들을 숙지해야 합니다. 실제로 REST API를 만드는데 필요한 개념들만 검토 후, 빠르게 Django REST Framework(이하 DRF)를 사용하여 REST API를 만들어봅니다. DRF를 사용하기 위해서는 다음의 사항들을 숙지해야 합니다. Django BasicDatabase SettingDjango ORMPython에서의 상속SerializerViewSetsRouters 위의 개념들을 숙지하고 어떻게 사용하는지 알게 되면 DRF를 통해 REST API를 간편하게 만들 수 있습니다. 이번에는 아래의 사항들을 검토합니다. Python에서의 상속SerializerViewSetsRouters Python에서 상속 Python에서는..
2018.05.09 -
Django REST Framework를 사용하다 - 2
Python은 쉽고 빠른 매우 효율적인 프로그래밍 언어입니다. Django는 Python을 활용하여 빠르고 쉽게 웹서비스를 만들 수 있도록 고안된 프레임워크입니다. 그중에서도 Django REST Framework(이하 DRF)는 Django를 활용하여 REST API를 구현하는데 필요한 다양한 기능들을 제공합니다. 이를 활용하여 Django로 REST API를 만들기 위한 사항들을 검토합니다. DRF를 사용하기 위해 다음의 사항들을 먼저 검토해야 합니다. Django 기본 사용법Database 설정Django ORM Django 기본 사용법 아래의 내용을 Django를 CLI(Command-Line Interface)환경에서 사용하는 방법을 나타내고 있습니다. 하지만 좀 더 편리하고 사용자 친화적인 환..
2018.05.08 -
Django REST Framework를 사용하다 - 1
Python 3.6 CentOS7 설치 1.IUS Community Project Repository를 yum Repository에 추가$ yum install -y https://centos7.iuscommunity.org/ius-release.rpm 2.Python 3.6이 존재하는지 확인$ yum search python36 3.Python 3.6 설치$ yum install -y python36u python36u-libs python36u-devel python36u-pip 4.설치 확인$ python3.6 -V -> Python 3.6.0이 출력됨 5.심볼록 링크 설정 현재 python 커맨드가 구버전(2.7)으로 되어있는 경우 이를 변경해줍니다. $ ls -l /bin/python* 현재 p..
2018.05.07 -
ViewSet list의 super() 메서드 파헤치기
#viewsets.py def list(self, request, *args, **kwargs): # 사용자 로직을 처리한다 return super().list(request, *args, **kwargs) REST API의 GET 요청에 응답하는 ViewSet의 list 메서드를 예시로 든 것입니다. Django의 철학은 “기본적인 것들 모두 제공할테니 필요한 로직만 구현하라”라고 볼 수 있습니다. 그렇기 때문에 Django와 Django REST Framework를 잘 사용하면 뛰어난 개발 생산성을 발휘할 수 있습니다. 하지만 위의 말처럼 Django를 최대한 활용하기 위해서는 기본으로 제공해주는 것들을 잘 활용할 수 있어야 합니다. super() 메서드는 POST 필드값 검증, Serializer를..
2018.05.06