Ejemplo n.º 1
0
def toy_list(request):
    if request.method == 'GET':
        # $ http :8000/toys/
        # $ curl -iX GET localhost:8000/toys/
        toys = Toy.objects.all()
        toys_serializer = ToySerializer(toys, many=True)
        return Response(toys_serializer.data)

    elif request.method == 'POST':
        # $ http POST :8000/toys/ name="Sokoban" \
        #   description="a mobile game" \
        #   toy_category="Electronics" \
        #   was_included_in_home=false \
        #   release_date="2017-03-12T01:01:00.656665Z"
        #
        # $ curl -iX POST -H "Content-Type: application/json" -d
        #   '{"name":"Tomb raider","description":"a mobile game",
        #   "toy_category":"Electronics","was_included_in_home":"false",
        #   "release_date":"2016-05-25T01:01:00.652465Z"}' localhost:8000/toys/
        toy_serializer = ToySerializer(data=request.data)

        if toy_serializer.is_valid():
            toy_serializer.save()
            return Response(toy_serializer.data,
                            status=status.HTTP_201_CREATED)

        return Response(toy_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 2
0
def toy_detail(request, pk):
    try:
        toy = Toy.objects.get(pk=pk)
    except Toy.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        toy_serializer = ToySerializer(toy)

        return Response(toy_serializer.data, status=status.HTTP_200_OK)

    elif request.method == 'PUT':
        toy_serializer = ToySerializer(toy, data=request.data)

        if toy_serializer.is_valid():
            toy_serializer.save()

            return Response(toy_serializer.data)

        return Response(toy_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        toy.delete()

        return Response(status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 3
0
 def put(self, request, pk, format=None):
     toy = self.get_object(pk)
     serializer = ToySerializer(toy, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 4
0
def toy_detail(request, pk):
    try:
        toy = Toy.objects.get(pk=pk)
    except Toy.DoesNotExist:
        return HttpResponse(status=status.HTTP_404_NOT_FOUND)

    # Return a single toy's data
    if request.method == 'GET':
        toy_serializer = ToySerializer(toy)
        return JSONResponse(toy_serializer.data)

    # Update toy's data
    elif request.method == 'PUT':
        toy_data = JSONParser().parse(request)
        toy_serializer = ToySerializer(toy, data=toy_data)
        if toy_serializer.is_valid():
            toy_serializer.save()
            return JSONResponse(toy_serializer.data)
        return JSONResponse(toy_serializer.errors, \
            status=status.HTTP_400_BAD_REQUEST)

    # Delete toy
    elif request.method == 'DELETE':
        toy.delete()
        return HttpResponse(status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 5
0
def toy_detail(request, pk):

    try:
        toy = Toy.objects.get(pk=pk)
    except Toy.DoesNotExist:
        return HttpResponse(status=status.HTTP_404_NOT_FOUND)
    # por get solo devuelve uno
    if request.method == 'GET':
        toy_serializer = ToySerializer(toy)

        return JSONResponse(toy_serializer.data)

    # actualizar lo mismo que post
    elif request.method == 'PUT':
        toy_data = JSONParser().parse(request)
        toy_serializer = ToySerializer(toy, data=toy_data)
        if toy_serializer.is_valid():
            toy_serializer.save()
            return JSONResponse(toy_serializer.data)
        return JSONResponse(toy_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

    # eliminar
    elif request.method == 'DELETE':
        toy.delete()
        return HttpResponse(status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 6
0
 def test_create_from_json(self):
     json_bytes_for_new_toy = bytes(self.json_string_for_new_toy,
                                    encoding="UTF-8")
     stream_for_new_toy = BytesIO(json_bytes_for_new_toy)
     parser = JSONParser()
     parsed_new_toy = parser.parse(stream_for_new_toy)
     new_toy_serializer = ToySerializer(data=parsed_new_toy)
     if new_toy_serializer.is_valid():
         toy3 = new_toy_serializer.save()
         self.assertEqual(toy3.name, 'Clash Royale play set')
Ejemplo n.º 7
0
def toy_list(request):
    if request.method == 'GET':
        toys = Toys.objects.all()
        toy_serial = ToySerializer(toys, many=True)
        return Response(toy_serial.data)
    elif request.method == 'POST':
        toy_serial = ToySerializer(data=request.data)
        if toy_serial.is_valid():
            toy_serial.save()
            return Response(toy_serial.data, status=status.HTTP_201_CREATED)
        return Response(toy_serial.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 8
0
    def toy_list(request):
        if request.method == 'GET':,
            toys = Toy.objects.all()
            toys_serializer = ToySerializer(toys, many=True)
            return JSONResponse(toys_serializer.data)

        elif request.method == 'POST':
            toy_data = JSONParser().parse(request)
            toy_serializer = ToySerializer(data=toy_data)
            if toy_serializer.is_valid():
                toy_serializer.save()
                return JSONResponse(toy_serializer.data, status=status.HTTP_201_CREATED)
            return JSONResponse(toy_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 9
0
def toy_list(request):  # to show/list all the toys
    if request.method == 'GET':
        toys = Toy.objects.all()
        toys_serializer = ToySerializer(toys, many=True)
        return JSONResponse(toys_serializer.data)

    elif request.method == 'POST':
        toy_data = JSONParser().parse(request)  # object->json
        toy_serializer = ToySerializer(data=toy_data)  # json-> dict-like
        if toy_serializer.is_valid():
            toy_serializer.save()
            return JSONResponse(toy_serializer.data, \
                status=status.HTTP_201_CREATED)
        return JSONResponse(toy_serializer.errors, \
            stratus=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 10
0
def toy_detail(request, pk):
    try:
        toy = Toy.objects.get(pk=pk)
    except Toy.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        # $ http :8000/toys/1
        # $ curl -iX GET localhost:8000/toys/1
        toy_serializer = ToySerializer(toy)
        return Response(toy_serializer.data)

    elif request.method == 'PUT':
        # Basically the same as `POST` but with 'pk' to update specific one

        # $ http PUT :8000/toys/4 \
        #   name="Sokoban" \
        #   description="a mobile game" \
        #   toy_category="Electronics" \
        #   was_included_in_home=false \
        #   release_date="2017-03-12T09:09:00.656665Z"

        # curl -iX PUT -H "Content-Type: application/json"
        #   -d '{"name":"Tombraider","description":"a mobile game",
        #   "toy_category":"Electronics","was_included_in_home":"false",
        #   "release_date":"2016-05-25T01:01:00.652465Z"}' localhost:8000/toys/5
        toy_serializer = ToySerializer(toy, data=request.data)

        if toy_serializer.is_valid():
            toy_serializer.save()
            return Response(toy_serializer.data)

        return Response(toy_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        # $ http DELETE :8000/toys/3
        # $ curl -iX DELETE localhost:8000/toys/3
        toy.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)

    elif request.method == 'PATCH':
        # Use this if you just want to update a specific field.
        # Test commands
        #   $ http PATCH :8000/toys/4 name='..'
        #   $ curl -iX -H "..json' -d '{"name":".."}' localhost:8000/toys/4
        pass
Ejemplo n.º 11
0
def toy_list(request):
    if request.method == 'GET':
        toys = Toy.objects.all()
        toys_serializer = ToySerializer(toys, many=True)
        return Response(toys_serializer.data)

    elif request.method == 'POST':
        # we passed request.data as the data argument to create a new ToySerializer instance
        toy_serializer = ToySerializer(data=request.data)
        if toy_serializer.is_valid():
            toy_serializer.save()
            return Response(
                toy_serializer.data,
                status=status.HTTP_201_CREATED
                )
        return Response(
            toy_serializer.errors,
            status=status.HTTP_400_BAD_REQUEST
            )
Ejemplo n.º 12
0
def toy_list(request):
    if request.method == 'GET':
        toys = Toy.objects.all()
        toys_serializer = ToySerializer(toys, many=True)
        return Response(toys_serializer.data)

    elif request.method == 'POST':
        # 根据请正文中包含的json数据创建新的toy。
        # 解析json并保存到toy_data
        # toy_data = JSONParser().parse(request)
        # 创建toy_serializer实例
        toy_serializer = ToySerializer(data=request.data)
        # 确认toy实例是否有效,如果有效则保存
        if toy_serializer.is_valid():
            toy_serializer.save()
            return Response(toy_serializer.data,
                            status=status.HTTP_201_CREATED)
        return Response(toy_serializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 13
0
def toy_detail(request, pk):
    try:
        toy = Toy.objects.get(pk=pk)
    except Toy.DoesNotExist:
        return HttpResponse(status=status.HTTP_404_NOT_FOUND)
    if request.method == 'GET':
        toy_serializer = ToySerializer(toy)
        return Response(toy_serializer.data)
    elif request.method == 'PUT':
        # toy_data = JSONParser().parse(request)
        # toy_serializer = ToySerializer(toy, data=toy_data)
        # 序列化器传入一个对象和处ID以外的其他字段数据
        toy_serializer = ToySerializer(toy, data=request.data)
        if toy_serializer.is_valid():
            toy_serializer.save()
            return Response(toy_serializer.data)
        return Response(toy_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    elif request.method == 'DELETE':
        toy.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 14
0
def toy_list(request):
    # metodo get
    if request.method == 'GET':
        # todos los datos de la base de datos
        toys = Toy.objects.all()
        # todos los pasas por el serializer
        toys_serializer = ToySerializer(toys, many=True)
        return JSONResponse(toys_serializer.data)

    # metodo post es para crear
    elif request.method == 'POST':
        # primero paso la peticion a json
        toy_data = JSONParser().parse(request)
        # lo mismo
        toy_serializer = ToySerializer(data=toy_data)
        # verificar la validez
        if toy_serializer.is_valid():
            toy_serializer.save()
            return JSONResponse(toy_serializer.data,
                                status=status.HTTP_201_CREATED)

        return JSONResponse(toy_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 15
0
def toy_detail(request, pk):
    try:
        toy = Toy.objects.get(pk=pk)
    except Toy.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        toy_serializer = ToySerializer(toy)
        return Response(toy_serializer.data)

    elif request.method == 'PUT':
        # we passed toy as the first argument and request.data as the data argument to create a
        # new ToySerializer instance:
        toy_serializer = ToySerializer(toy, data=request.data)
        if toy_serializer.is_valid():
            toy_serializer.save()
            return Response(toy_serializer.data)
        return Response(
            toy_serializer.errors,
            status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        toy.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Ejemplo n.º 16
0
print(toy1.created)
print(toy1.was_included_in_home)
print(toy2.pk)
print(toy2.name)
print(toy2.created)
print(toy2.was_included_in_home)

serializer_for_toy1 = ToySerializer(toy1)
print(serializer_for_toy1.data)

serializer_for_toy2 = ToySerializer(toy2)
print(serializer_for_toy2.data)

json_renderer = JSONRenderer()
toy1_rendered_into_json = json_renderer.render(serializer_for_toy1.data)
toy2_rendered_into_json = json_renderer.render(serializer_for_toy2.data)
print(toy1_rendered_into_json)
print(toy2_rendered_into_json)

json_string_for_new_toy = '{"name":"Clash Royale play set","description":"6 figures from Clash Royale", "release_date":"2017-10-09T12:10:00.776594Z","toy_category":"Playset","was_included_in_home":false}'
json_bytes_for_new_toy = bytes(json_string_for_new_toy, encoding="UTF-8")
stream_for_new_toy = BytesIO(json_bytes_for_new_toy)
parser = JSONParser()
parsed_new_toy = parser.parse(stream_for_new_toy)
print(parsed_new_toy)

new_toy_serializer = ToySerializer(data=parsed_new_toy)
if new_toy_serializer.is_valid():
    toy3 = new_toy_serializer.save()
    print(toy3.name)
Ejemplo n.º 17
0
 def post(self, request, format=None):
     serializer = ToySerializer(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)
        return Response(toys_serializer.data)
    elif request.method == 'POST':
        toy_serializer = ToySerializer(data=request.data)
        if toy_serializer.is_valid():
            toy_serializer.save()
            return Response(toy_serializer.data,
                status=status.HTTP_201_CREATED)
        return Response(toy_serializer.errors,
            status=status.HTTP_400_BAD_REQUEST)


@api_view(['GET', 'PUT', 'DELETE'])
def toy_detail(request, pk):
    try:
        toy = Toy.objects.get(pk=pk)
    except Toy.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)
            if request.method == 'GET': 
        toy_serializer = ToySerializer(toy) 
        return Response(toy_serializer.data) 
 
    elif request.method == 'PUT': 
        toy_serializer = ToySerializer(toy, data=request.data) 
        if toy_serializer.is_valid(): 
            toy_serializer.save() 
            return Response(toy_serializer.data) 
        return Response(toy_serializer.errors, status=status.HTTP_400_BAD_REQUEST) 
 
    elif request.method == 'DELETE': 
        toy.delete() 
        return Response(status=status.HTTP_204_NO_CONTENT)