接上文 这里先写一个GET请求的python
1.先在VIEW里定义一个方法 代码以下:django
@api_view(['GET', 'POST']) def book_request(request): if request.method == 'GET': queryset = Book.objects.all() serializer_class = BookSerializer serializer = BookSerializer(queryset) return Response(serializer.data, status=status.HTTP_201_CREATED) else: return Response({'key': 'value'}, status=status.HTTP_200_OK)
这里的BookSerializer是上文定义的,注意api
serializer = BookSerializer(queryset)机器学习
return Response(serializer.data, status=status.HTTP_201_CREATED)学习
此处2行与上一篇文不同,这里若是没有返回会提示ui
Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<type 'NoneType'>`url
2.url里加上路由规则rest
url(r'^test/',include('quickstart.urls')),blog
quickstart.urls:路由
from django.conf.urls import * from rest_framework.views import * urlpatterns = patterns('quickstart.views', url(r'^$', 'book_request') )
3.启动
http://localhost:8000/test/
提示错误:'QuerySet' object has no attribute 'id'
可是序列化里已经有了这个字段了,后来想起官网API里序列化这一节有写,果真若是处理的是集合那么应该为
serializer = BookSerializer(queryset,many=True)
这个时候就能够正常了。
其实我看这个rest_framwwork 只是为机器学习相关内容作铺垫,因此只是略微实现,若是要用请自行补充,博文只记录易错点。