Django Serializer для массива изображений замедляет работу - PullRequest
0 голосов
/ 02 апреля 2019

В настоящее время я делаю приложение Django, которое получает запрос POST, содержащий байтовый массив, который, учитывая ширину и высоту, превращается в двумерный массивный массив.

Мы используем Django Rest Framework.

Я изменил имена своих классов при публикации здесь в Stackoverflow, все компилируется и работает нормально, это проблема синхронизации.

Обычно для анализа входящего запроса требуется 0,02 с при измерении с использованием таймера.

class APIViewEndPoint(APIView):
    def post(self, request):
        params = json.loads(request.body.decode('utf-8'))
        array = params.get("array")
        height = params.get("height")
        width = params.get("width")
        image = np.array(array, dtype=np.uint8).reshape(height, width)

Это сериализатор, который гораздо лучше подходит для обработки входящих запросов.

class PostRequestSerializer(serializers.Serializer):
    width = serializers.IntegerField(required=True)
    height = serializers.IntegerField(required=True)
    array = serializers.ListField(required=True)

Теперь мы используем сериализатор, и время измеряется с использованием таймера. 0,8 с.

class APIViewEndPoint(APIView):
    def post(self, request):
        params = json.loads(request.body.decode('utf-8'))
        serializer = PostRequestSerializer(data=params)
        if(serializer.is_valid()):
            data = serializer.data
            image = np.array(data["array"], dtype=np.uint8).reshape((data["height"], data["width"]))

Есть ли более быстрый способ сериализации массива в Django? В идеале было бы замечательно, если бы сериализатор мог также обрабатывать изменение формы входящего массива.

Есть ли мысли по этому поводу?

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