标签:
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的,有兴趣的同学可以跟着看看,写文当记录了
标签:
原文地址:http://www.cnblogs.com/EncryptingLife/p/5156263.html