Django Restframework 实践(二)

按照自己的方法来写接口

'''
@api_view([ 'POST','GET',]) 允许请求的是get或post方法,这里去掉get那么就不能用get方法请求
@permission_classes((permissions.AllowAny,)) 权限装饰器,如果去掉就无法访问
这里就是自己写的方法,这里用了AssetSerializer rest的序列化方法和Response展示的方法
'''
@api_view([ 'POST','GET',])
@permission_classes((permissions.AllowAny,))
def AssetList(request):
    if request.method == 'GET':
        asset_list = models.Asset.objects.all()
        #rest 方法AssetSerializer(asset_list,many=True)
        serializer = AssetSerializer(asset_list,many=True)
        print serializer.data
        #django 中并没有Response这个方法而是rest 封装的
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = AssetSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

如果这样定义就无法在api页面中查询到了,页面中就没有http://localhost/api/asset_list/  这个链接

自定义的结果也是可以正常返回的 

原文地址:https://www.cnblogs.com/menkeyi/p/5899567.html