일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- DRF
- es6
- Git
- Django
- MAC
- 장고
- HTML
- CSS
- web
- form
- Algorithm
- 알고리즘 연습
- 알고리즘 풀이
- 파이썬 알고리즘
- django ORM
- django widget
- js
- AWS
- 알고리즘 문제
- 파이썬
- javascript
- c++
- API
- react
- PYTHON
- 백준
- Baekjoon
- django rest framework
- java
- 알고리즘
- Today
- Total
목록웹프로그래밍 (163)
수학과의 좌충우돌 프로그래밍
이번 포스팅에서는 Serializer 에 대해서 자세히 알아보도록 하겠습니다. Serializer 우선 github에서의 Serializer 코드를 살펴보겠습니다. Serializer 는 BaseSerializer 를 상속 받고 BaseSerializer 의 생성자는 아래와 같습니다. # rest_framework/serializers.py class BaseSerializer(Field): def __init__(self, instance=None, data=empty, **kwargs): # 생략 class Serializer(BaseSeializer): # 생략 그렇기 때문에 우리는 이를 사용할 때 post 라는 instance가 먼저 나온다면 뒤에 data 라는 keyword 를 써줄 필요가 없지..
실제 서비스의 경우에는 레코드의 개수가 많을 것이고 이 경우 하나의 API 요청으로 모든 레코드를 받는 것은 오랜 시간이 걸리게 됩니다. 따라서 이런 경우 페이지를 나눠서 요청을 해야합니다. 다행히도 DRF 에서는 이러한 pagination 기능을 제공하고 있습니다. PageNumberPagination 과 LimitOffsetPagination pagination 을 하는데는 크게 두 가지 방법이 있습니다. 두 방법 모두 url 의 get parameter 를 이용하여 이를 지원해줍니다. 각각에 대해 알아보도록 하겠습니다. PageNumberPagination page : 몇 번째 페이지인지 표시해줍니다. 페이지는 1부터 시작합니다. page_size : 한 페이지에 몇 개의 레코드를 보여줄지 표시해줍..
목록을 조회하는 ListAPIVIew 에서 필터링하는 방법에 대해서 알아보도록 하겠습니다. 이는 CBV 의 일종이기 때문에 CBV와 익숙하시다면 쉽게 하실 수 있을 겁니다. 여러 인자 획득 filtering 을 하는데 필요한 인자들을 request 를 통해서 획득할 수 있습니다. self.request.user 현재 로그인 중인 유저에 접근할 수 있습니다. 로그인이 안 되어 있을 시에는 AnnoymousUser 인스턴스를 획득합니다. self.request.GET 요청한 get 인자들을 획득합니다. self.request.query_params self.request.GET 와 같은 값을 얻습니다. 보다 더 가독성이 높기 때문에 DRF 에서 지원하고 있습니다. self.kwargs URL Capture ..
restframework.response.Response 에서는 2가지 타입의 응답을 할 수 있습니다. json 다른 일반적인 경우 json 타입으로 응답하게 됩니다. { "post":"http://127.0.0.1:8000/post/" } api DRF은 브라우저를 통해 접근이 가능하며 이 경우 api 타입으로 응답하게 됩니다. 이 api 타입이 html로서 우리가 브라우저에서 보게 되는 아래의 이미지입니다. 출력 포맷을 결정하는 방법은 3가지가 있습니다. 각 방식에 대해 json 타입의 요청과 api 타입의 요청하는 방법은 다음과 같습니다. Accept 헤더 localhost:8000/ Accept:application/json localhost:8000/ Accept:text/html GET 인자 ..
Django-APIView-Mixins-genericsAPIView-ViewSet을-알아보자 [Django] APIView, Mixins, generics APIView, ViewSet을 알아보자 django 에서는 view 를 통해서 HTTP 요청을 처리합니다. view에서 이를 처리하는 방법은 다양합니다. FBV(함수기반뷰), CBV(클래스기반뷰) 를 통해서도 API 를 만들 수 있지만 rest_framework 는 보다 쉽게, 효율.. ssungkang.tistory.com 저번 포스팅에서 ViewSet 에 대해서 간단히 알아보았습니다. 이번에는 좀 더 자세히 알아보도록 하겠습니다. ViewSet 저번 포스팅에서도 언급했지만 ViewSet 은 다른 것들과 좀 달랐습니다. 일반적인 CBV 가 아니기 ..
django 에서는 view 를 통해서 HTTP 요청을 처리합니다. view에서 이를 처리하는 방법은 다양합니다. FBV(함수기반뷰), CBV(클래스기반뷰) 를 통해서도 API 를 만들 수 있지만 rest_framework 는 보다 쉽게, 효율적으로 만들 수 있습니다. Serializer [Django] django rest framework 를 위한 JSON 직렬화 [Django] django rest framework 를 위한 JSON 직렬화 ModelSerializer 를 통한 JSON 직렬화 DRF 에서는 ModelSerializer 를 통해 JSONRenderer 에서 변환가능한 형태로 먼저 데이터를 변환합니다. Serializer 는 장고의 Form 과 유사하며 ModelSerializer는 ..
ModelSerializer 를 통한 JSON 직렬화 DRF 에서는 ModelSerializer 를 통해 JSONRenderer 에서 변환가능한 형태로 먼저 데이터를 변환합니다. Serializer 는 장고의 Form 과 유사하며 ModelSerializer는 장고의 ModelForm과 유사합니다. 둘의 결정적인 차이는 Form 은 html 을 생성하고 Serializer는 JSON 문자열을 생성하는 차이가 있습니다. 실습을 위하여 간단히 모델을 정의하였습니다. # models.py from django.db import models class Post(models.Model): title = models.CharField(max_length=100) message = models.TextField() ..
DRF 라고 불리는 django rest framework 를 학습하기 이전에 기초적인 내용에 대해 알아보고자 합니다. JSON JSON 은 JavaScript Object Notation 의 줄임말로서 데이터의 송수신을 자바스크립트 객체로서 수행할 수 있게끔 하는 가벼운 문자열 데이터 표현식입니다. JSON 이 등장하기 이전에는 XML 이 그 역할를 독차지 하고 있었습니다. 하지만 XML 은 비교적 크기가 무겁다는 이유로 요즘은 JSON 이 더 많은 지분을 확보하고 있습니다. XML 이란? eXtensible Markup Language 의 줄임말로서 html 과 많이 비교됩니다. 둘의 결정적인 차이는 html 은 테그들을 통해서 데이터를 표현하는 마크업 언어이고 XML 은 데이터를 설명하는 마크업 언..
구글 검색을 하다보면 검색 결과에 위 이미지와 같이 평점과 리뷰 등이 나오는 걸 볼 수 있습니다. 검색 결과에 위와 같은 내용을 노출시킨다면 사용자로 하여금 신뢰도를 얻을 수 있고 더 높은 클릭 수를 부를 수 있을 겁니다. 이를 위해서는 스키마 마크업을 이용하여 Structed Data 를 웹페이지에 넣어야 합니다. 우리의 웹페이지는 html 로 이루어져 있습니다. html 은 데이터와 그 형식을 표시해줄 뿐, 데이터가 어떤 데이터인지는 알지 못합니다. 그저 텍스트로만 인식하는 거지 텍스트가 사람이름인지, 건물의 이름인지 등을 구분하지 못한다는 소리죠. 이를 구분해주기 위해 스키마 마크업이 필요한 것이죠. 스키마 (Schema) 란? 데이터의 데이터 라는 의미입니다. 해당 데이터가 어떤 데이터인지 설명해..
회원가입 시 이메일 인증 [Django] 회원가입 시 이메일 인증, SMTP SMTP SMTP 는 Simple Mail Transfer Protocol 의 약자로 전자 메일 전송을 위한 표준 프로토콜입니다. 이를 이용해서 인증메일을 보내보도록 하겠습니다. 사전 설정 IMAP 설정 : 링크로 들어가서 IMAP 1단계 설정.. ssungkang.tistory.com 과거 포스팅에서 이메일을 통해 회원가입 인증하는 과정을 알아보았습니다. 기본적으로 이메일을 보내는 과정은 위 링크의 상단부에 자세히 나와있으므로 참고해주시기 바랍니다. 이번 시간에는 이메일에 css 를 적용해서 간단한 디자인을 해보도록 하겠습니다. 먼저 메일을 보내는 로직이 있는 views 입니다. 현재 사용자가 tit..