Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用lz4+对POST和GET请求进行压缩和解压缩;django+;rest\u框架_Python_Django_Python 3.x_Django Rest Framework_Lossless Compression - Fatal编程技术网

Python 使用lz4+对POST和GET请求进行压缩和解压缩;django+;rest\u框架

Python 使用lz4+对POST和GET请求进行压缩和解压缩;django+;rest\u框架,python,django,python-3.x,django-rest-framework,lossless-compression,Python,Django,Python 3.x,Django Rest Framework,Lossless Compression,我正在使用django 1.11+rest\u框架尝试使用python库实现无损压缩方法。简而言之,我实现了一个基于类的viewPOST方法,该方法定义了压缩方法。稍后,我希望在完成GET请求时实现一种解压缩方法。当我尝试发出POST请求时,我得到typeerror日志: 类字节对象是必需的,而不是'InMemoryUploadedFile' 我不太熟悉无损压缩的压缩,一些正确的方向会很好。最后,有没有其他方法可以在POST和GET方法上实现文件的压缩和解压缩 我的模型如下: class Emp

我正在使用
django 1.11
+
rest\u框架
尝试使用
python
库实现无损压缩方法。简而言之,我实现了一个基于类的view
POST
方法,该方法定义了压缩方法。稍后,我希望在完成
GET
请求时实现一种解压缩方法。当我尝试发出
POST
请求时,我得到
typeerror
日志:

类字节对象是必需的,而不是'InMemoryUploadedFile'
我不太熟悉无损压缩的压缩,一些正确的方向会很好。最后,有没有其他方法可以在
POST
GET
方法上实现文件的压缩和解压缩

我的模型如下:

class EmployeeDocument(models.Model):
    """
    Model, Which holds Employee documents uploaded.

    """
    employee = models.ForeignKey(
        Employee, related_name="employee_docs", null=True, blank=True)
    document = models.FileField(
        upload_to='Images/', default='Images/None/No-img.jpg')
    details = models.TextField()
    # url = models.URLField(null=True)
    # path_to_image = models.CharField(null=True, max_length=100)
    # upload_date = models.DateTimeField(auto_now=True, db_index=True)

    def __str__(self):
        return 'DOC - %s' % (self.employee.user.username)
然后查看.py

class EmployeeDocumentPOST(APIView):
    """
      compress Document
    """
    permission_class = [AllowAny]
    serializer_class = EmployeeDocumentSerializer

    def compressed_doc(self,document):
        document = lz4.frame.compress(document)
        return document

    def post(self, request, *args, **kwargs):
        compressd_doc = self.compressed_doc(document)
        employee = Employee.objects.get(id=request.data.pop('employee'))
        detail = request.data.get('detail')
        employee_doc = EmployeeDocument.objects.create(**request.data)

        employee_doc.compressed_doc = compressed_doc
        employee_doc.employee = employee
        employee_doc.detail = detail
        employee_doc.save()

        serializer = EmployeeDocument(employee_doc)
        return Response(serializer.data, status = status, status = status.HTTP_200_OK)