如何将图像发布到Django Rest API

时间:2019-10-15 01:36:10

标签: django django-rest-framework

我在处理图像文件方面没有太多的实践,对于使用django REST API发布和处理图像,我感到很困惑。我使用python脚本作为客户端仅用于测试(最终将是ios应用程序)。

任何能帮助我接收图像文件并将其保存在本地服务器上的人,将不胜感激。

客户:

i = Image.open('image.jpeg')
upload = {
    'id': 3,
    'picture': i
}
r = requests.post(ip, data=upload, stream=True)
print(r.text)

服务器:

class Picture_Upload(APIView):
    def post(self, request):
        f = request.data['picture']
        return Response(f.content)

1 个答案:

答案 0 :(得分:0)

您可能希望使用MultiPartParser来解析表单数据,以便可以在APIView上读取它,并且确定我们必须以multipart/form-data的形式发送数据。像这样:

upload = {
    'picture': open('image.jpeg', 'rb')
}

data = {
    'id': 3
}

resp = requests.post('/upload_url/', files=upload, data=data)

和您的看法:

class Picture_Upload(APIView):
    parser_classes = (MultiPartParser, FormParser, )

    def post(self, request):
        picture = request.data['picture']
        id = request.data['id']

        # Use your model to handle the uploaded file

        return Response(status=200)