일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- PYTHON
- django rest framework
- CSS
- 알고리즘 문제
- AWS
- 알고리즘 연습
- 파이썬
- form
- 알고리즘
- Django
- Baekjoon
- django ORM
- 파이썬 알고리즘
- java
- API
- 알고리즘 풀이
- Algorithm
- web
- 백준
- Git
- js
- react
- django widget
- javascript
- 장고
- DRF
- c++
- es6
- MAC
- HTML
Archives
- Today
- Total
수학과의 좌충우돌 프로그래밍
[Django] format 과 Renderer 본문
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 인자 format
localhost:8000/?format=json http://localhost:8000/?format=api
-
URL 끝에 '.{포맷방식}'
http://localhost:8000/.json http://localhost:8000/.api
Renderer
DRF 은 두 가지 Renderer를 디폴트로 제공하고 있습니다. 이는 아래와 같습니다.
-
JsonRenderer
json.dumps
를 통한 json 직렬화- format 이 json 일 경우
-
BrowsableAPIRenderer
- html 을 통한 랜더링
- format 이 api 일 경우
https://www.django-rest-framework.org/api-guide/renderers/
이 외의 추가적인 Renderer 들은 위 공식문서를 통해서 확인할 수 있습니다.
Renderer를 바꾸기 위해서는, 혹은 새로운 Renderer를 추가하기 위해서는 settings 에서 이를 추가해주어야 합니다.
기본적으로 제공되는 두 개의 Renderer를 포함하여 추가적인 Renderer 를 기재하면 됩니다.
# settings.py
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': [
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
# 추가적인 renderer
]
}
'웹프로그래밍 > DRF' 카테고리의 다른 글
[Django] DRF Pagination (6) | 2019.12.30 |
---|---|
[Django] filtering 과 Search (0) | 2019.12.29 |
[Django] ViewSet 과 Router (9) | 2019.12.28 |
[Django] APIView, Mixins, generics APIView, ViewSet을 알아보자 (15) | 2019.12.27 |
[Django] django rest framework 를 위한 JSON 직렬화 (0) | 2019.11.19 |
Comments