Django Rest Framework 사용자 정의 반환 json 형식
10730 단어 DjangoRESTframework 팁
# view.py
from rest_framework.generics import ListAPIView
from .serializer import SnippetSerializer
from .models import Snippet
class SnippetList(ListAPIView):
queryset = Snippet.objects.all()
serializer_class = SnippetSerializer
액세스
http://127.0.0.1:8000/snippets/
[
{
"code": "foo = \"bar\"
",
"id": 1,
"language": "python",
"linenos": false,
"style": "friendly",
"title": ""
},
{
"code": "print(\"hello, world\")
",
"id": 2,
"language": "python",
"linenos": false,
"style": "friendly",
"title": ""
}
]
사용자 정의response
실제 개발에서 우리는 더 많은 필드를 되돌려야 한다. 예를 들어 다음과 같다.
{
"code": 0,
"data": [], #
"msg": "",
"total": ""
}
이때 리스트를 다시 쓰는 방법이 필요합니다.
class SnippetList(ListAPIView):
def list(self, request, *args, **kwargs):
queryset = Snippet.objects.all()
response = {
'code': 0,
'data': [],
'msg': 'success',
'total': ''
}
serializer = SnippetSerializer(queryset, many=True)
response['data'] = serializer.data
response['total'] = len(serializer.data)
return Response(response)
액세스
http://127.0.0.1:8000/snippets/
{
"code": 0,
"data": [
{
"code": "foo = \"bar\"
",
"id": 1,
"language": "python",
"linenos": false,
"style": "friendly",
"title": ""
},
{
"code": "print(\"hello, world\")
",
"id": 2,
"language": "python",
"linenos": false,
"style": "friendly",
"title": ""
}
],
"msg": "success",
"total": 2
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.