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的主要内容,如果未能解决你的问题,请参考以下文章

rest_framework框架入门

django使用rest_framework

Django.rest_framework:如何序列化一对多?

markdown 【Django的】rest_framework

Python之Django rest_Framework

Django之REST_FRAMEWORK 认证组件