Python(19)
-
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를 사용하다 - 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 -
Django에서 HTML 태그 추출하기 - Beautiful Soup
Beautiful Soup은 무엇인가? BeautifulSoup(이하 bs4)는 XML과 HTML형식으로 된 문서를 분해할 수 있는 분해기(Parser)입니다. 직관적이고 굉장히 쉽게 사용할 수 있다는 장점이 있습니다. 원하는 HTML 태그를 검색/추출 및 수정하는데 긴 코드가 필요없습니다. elements = BeautifulSoup("TITLEexmaple", 'html.parser') elements.title.get_text() # TITLE이 문자열로 리턴됩니다. 위처럼 직관적으로 간단하게 HTML 태그 및 태그의 속성값까지 다룰 수 있습니다. bs4와 비슷한 라이브러리로는 유명한 lxml이 있습니다. lxml은 C로 만들어졌기 때문에 성능에 최적화 되어 있습니다. 위의 bs4 공식 문서에서도 ..
2018.05.06