在django rest framework里上传解析excel文件

3,055 阅读1分钟

上传excel文件然后解析导入数据是很常见的需求。在Django Rest Framework里,我们也可以很容易实现这样的功能。

在Django Rest Framework里,parser用来处理不同media type的请求。要处理文件上传,用MultiPartParser即可。

from rest_framework.parsers import MultiPartParser
from rest_framework.views import APIView
from rest_framework.response import Response

from pyexcel_xlsx import get_data


class FileUploadView(APIView):
    parser_classes = (MultiPartParser,)

    def post(self, request, format=None):
	file_obj = request.data["file"]
	data = get_data(file_obj)
	import json

	print(json.dumps(data))
	print("here")

	return Response(status=201)

在url里做好相应的配置,就OK啦。 可以用postman来测试一下。

要解析xlsx文档,可以用pyexcel-xlsx。上面的实例代码里,get_data的返回值就是python的dict