You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
134 lines
4.5 KiB
134 lines
4.5 KiB
from rest_framework.response import Response |
|
from rest_framework.status import HTTP_400_BAD_REQUEST, HTTP_204_NO_CONTENT, HTTP_201_CREATED |
|
from django.http import Http404 |
|
from snippets.models import Snippet |
|
from snippets.serializers import SnippetSerializer |
|
from rest_framework.views import APIView |
|
|
|
# @csrf_exempt |
|
# def snippet_list(request): |
|
# if request.method == 'GET': |
|
# snippets = Snippet.objects.all() |
|
# serializer = SnippetSerializer(snippets,many=True) |
|
# return JsonResponse(serializer.data,safe=False) |
|
# |
|
# elif request.method == 'POST': |
|
# data = JSONParser().parse(request) |
|
# serializer = SnippetSerializer(data=data) # 序列化成JSON格式 |
|
# if serializer.is_valid(): |
|
# serializer.save() |
|
# return JsonResponse(serializer.data,status=HTTP_201_CREATED) |
|
# return JsonResponse(serializer.errors, status=HTTP_400_BAD_REQUEST) |
|
# |
|
# @csrf_exempt |
|
# def snippet_detail(request,pk): |
|
# try: |
|
# snippet = Snippet.objects.get(pk=pk) |
|
# except Snippet.DoesNotExist: |
|
# return HttpResponse(status=HTTP_400_BAD_REQUEST) |
|
# |
|
# if request.method == 'GET': |
|
# serializer = SnippetSerializer(snippet) |
|
# return JsonResponse(serializer.data) |
|
# |
|
# elif request.method == 'PUT': |
|
# data = JSONParser().parse(request) |
|
# serializer = SnippetSerializer(data=data) |
|
# if serializer.is_valid(): |
|
# serializer.save() |
|
# return JsonResponse(serializer.data) |
|
# return JsonResponse(serializer.errors,status=HTTP_400_BAD_REQUEST) |
|
# |
|
# elif request.method == 'DELETE': |
|
# snippet.delete() |
|
# return HttpResponse(status=HTTP_204_NO_CONTENT) |
|
|
|
|
|
# @api_view(['GET', 'POST']) |
|
# def snippet_list(request, format=None): |
|
# if request.method == 'GET': |
|
# snippets = Snippet.objects.all() |
|
# serializer = SnippetSerializer(snippets,many=True) |
|
# return Response(serializer.data) |
|
# |
|
# elif request.method == 'POST': |
|
# # 序列化成JSON格式 |
|
# serializer = SnippetSerializer(data=request.data) |
|
# if serializer.is_valid(): |
|
# serializer.save() |
|
# return Response(serializer.data, status=HTTP_201_CREATED) |
|
# return Response(serializer.errors, status=HTTP_400_BAD_REQUEST) |
|
|
|
# |
|
# @api_view(['GET', 'PUT', 'DELETE']) |
|
# def snippet_detail(request, pk, format=None): |
|
# try: |
|
# snippet = Snippet.objects.get(pk=pk) |
|
# except Snippet.DoesNotExist: |
|
# return Response(status=HTTP_400_BAD_REQUEST) |
|
# |
|
# if request.method == 'GET': |
|
# serializer = SnippetSerializer(snippet) |
|
# return Response(serializer.data) |
|
# |
|
# elif request.method == 'PUT': |
|
# serializer = SnippetSerializer(snippet,data=request.data) |
|
# if serializer.is_valid(): |
|
# serializer.save() |
|
# return Response(serializer.data) |
|
# return Response(serializer.errors,status=HTTP_400_BAD_REQUEST) |
|
# |
|
# elif request.method == 'DELETE': |
|
# snippet.delete() |
|
# return Response(status=HTTP_204_NO_CONTENT) |
|
|
|
|
|
|
|
class SnippetView(APIView): |
|
# 获取所有的snippet |
|
def get(self, request, format=None): |
|
snippets = Snippet.objects.all() |
|
serializer = SnippetSerializer(snippets, many=True) |
|
return Response(serializer.data) |
|
|
|
# 创建一个新的snippet |
|
def post(self, request, format=None): |
|
serializer = SnippetSerializer(data=request.data) |
|
if serializer.is_valid(): |
|
serializer.save() |
|
return Response(serializer.data,status=HTTP_201_CREATED) |
|
return Response(status=HTTP_400_BAD_REQUEST) |
|
|
|
|
|
class SnippetDetailView(APIView): |
|
def get_object(self, pk): |
|
try: |
|
return Snippet.objects.get(pk=pk) |
|
except Snippet.DoesNotExist: |
|
return Http404 |
|
|
|
# 查询某个snippet的数据 |
|
def get(self,request,pk,format=None): |
|
snippet = self.get_object(pk) |
|
serializer = SnippetSerializer(snippet) |
|
return Response(serializer.data) |
|
|
|
# 更新某个snippet的数据 |
|
def put(self,request,pk,format=None): |
|
snippet = self.get_object(pk) |
|
serializer = SnippetSerializer(snippet,data=request.data) |
|
if serializer.is_valid(): |
|
serializer.save() |
|
return Response(serializer.data) |
|
return Response(status=HTTP_400_BAD_REQUEST) |
|
|
|
# 删除某一个snippet |
|
def delete(self,request,pk,format=None): |
|
snippet = self.get_object(pk) |
|
snippet.delete() |
|
return Response(status=HTTP_204_NO_CONTENT) |
|
|
|
|
|
|
|
|
|
|
|
|