django rest_framework--入門教程2


接上文 這里先寫一個GET請求的

1.先在VIEW里定義一個方法 代碼如下:

  

@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是上文定義的,注意

serializer = BookSerializer(queryset)

return Response(serializer.data, status=status.HTTP_201_CREATED)

此處2行與上一篇文不一樣,這里如果沒有返回會提示

Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` to be returned from the view, but received a `<type 'NoneType'>`

2.url里加上路由規則

  url(r'^test/',include('quickstart.urls')),

  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 只是為機器學習相關內容做鋪墊,所以只是略微實現,如果要用請自行補充,博文只記錄易錯點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM