Как инкапсулировать специфический синтаксический анализ файлов Django REST framework - PullRequest
0 голосов
/ 06 ноября 2019

Я хотел бы создать парсеры для нескольких типов файлов при их загрузке. После разбора я хочу создать модель для каждого загруженного файла.

Я создаю функцию, которая принимает файл xyz и анализирует его, чтобы определить.

Я создаю APIView, который обрабатывает запрос и применяет мою функцию:

Мне нужно более удобное игибкий код, где каждый класс несет единоличную ответственность. Я думаю, что мне нужны DRM сериализаторы и парсеры. Но как я могу их соединить?

views.py

class parseXYZfile(generics.CreateAPIView):
    # serializer_class = parseXYZFileSerializer
    # parser_classes = [XYZFileParser]

    def post(self, request):
        files_data_list = request.FILES.getlist("files")
        d = {}
        for data in files_data_list:
            path = default_storage.save('tmp/tmp_file.xyz', ContentFile(data.read()))
            tmp_file = os.path.join(settings.MEDIA_ROOT, path)
            d[str(data)] = parseXYZ(tmp_file)
            os.remove(tmp_file)

        return Response(d)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...