django rest_framework--入门教程3
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django rest_framework--入门教程3相关的知识,希望对你有一定的参考价值。
rest_framwork 之post 与put
rest_framwork可以接受post与put delete get请求,可以对资源进行刚CRUD,以一个DEMO为例,
1.先在VIEW里定义一个方法
@api_view([‘GET‘, ‘PUT‘, ‘DELETE‘]) def book_detail(request,pk): """ Retrieve, update or delete a book instance. """ try: book = Book.objects.get(pk=pk) except Book.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == ‘GET‘: serializer = BookSerializer(book) return Response(serializer.data) elif request.method == ‘PUT‘: serializer = BookSerializer(book, data=request.DATA) if serializer.is_valid(): serializer.save() return Response(serializer.data) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == ‘DELETE‘: book.delete() return Response(status=status.HTTP_204_NO_CONTENT)
接受BOOK的主键,如果这个主键不存在,会返回404的状态码,可以通过POST对象去更新对象,这种方式跟.net里面类似,之后会写一个.net的类似的。当然可以删除对象,这里可以灵活的返回状态码。如果是用curl的话 因为在setting里面配置了所以要加上-u test:pwd 这个认证在firefox里填上并没有用,还请注意,可以在图形界面POST一个,复制curl命令 放在终端执行,这个时候是OK的。到这里基本的CURD就完了接下来看能不能写一些rest_framework的API的,有兴趣的同学可以跟着看看,写文当记录了
以上是关于django rest_framework--入门教程3的主要内容,如果未能解决你的问题,请参考以下文章
Django.rest_framework:如何序列化一对多?