В настоящее время я делаю приложение 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? В идеале было бы замечательно, если бы сериализатор мог также обрабатывать изменение формы входящего массива.
Есть ли мысли по этому поводу?