Django REST FRAMEWORK Tutorial 7 -- snippet_list の GET/POST を APIView で扱う
7441 단어 django
前回の復習
前回の記事でsinppets/views.py で
@csrf_exempt
에서 JSON 레스폰스를 통하고 GET 와 POST를 実装했다APIView 에서 GET/POST を確認
https://www.django-rest-framework.org/tutorial/2-requests-and-responses/#wrapping-api-views
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
status CODEの 200 ~ 500 を使うために status
@api_view
を使うために api_viewResponse として返すために Response
これらをinport
@api_view(['GET', 'POST'])
def snippet_list(request):
@api_view
で GET, POST を受けることを snippet_list の上に記載AssertionError at /snippets/
@api_view missing list of allowed HTTP methods
@api_view
のみだ와, HTTP 메소드가 가능하지 않은 Era-になる.가져 오기
snippet_list の中にかく
if request.method == 'GET':
snippets = Snippet.objects.all()
serializer = SnippetSerializer(snippets, many=True)
return Response(serializer.data)
GET は前回と大きくは変わらない.
JsonResponse を Response に変更して safety=false がなくなったくらい.
게시하다
elif request.method == 'POST':
serializer = SnippetSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
POST は大きく変わった.
JSON 파서 を使わず、request.data から直接시리아라이즈시
JsonResponse を使えわず、Response で
status.HTTP_201_CREATED
やstatus.HTTP_400_BAD_REQUEST
を스테이타스として返すようにする브라우자로 REST FRAMEWORK の API View を試す
上記のメソッドをちゃんと記載していれば
API 보기 を使って、REST FRAMEWORK の UI で綺麗に레스폰스가 見れる.
POST /snippets/
HTTP 201 Created
Allow: OPTIONS, POST, GET
Content-Type: application/json
Vary: Accept
{
"id": 8,
"title": "from REST API VIEW",
"code": "print(\"updated\")",
"linenos": false,
"language": "python",
"style": "friendly"
}
Postman と同じように POST も JSON データを送れる.
まとめ
@api_view(['GET', 'POST'])
と定義して関数を書くと브라우자로 Django REST 프레임워크 の API View の形으로
GET, POST を扱える.
Reference
이 문제에 관하여(Django REST FRAMEWORK Tutorial 7 -- snippet_list の GET/POST を APIView で扱う), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kaede_io/django-rest-framework-tutorial-7-snippetlist-wo-apiview-dejian-ru-42od텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)