Десериализация json как в ASP.Net MVC - Python
Формулировка задачи:
Всем доброго дня. Недавно только вот начал разбираться с Python и Django, до этого довольно тесно работал с ASP.Net MVC. Пытаюсь немного въехать в чём основные различия и облегчить себе жизнь. Собственно вопрос:
Если послать json в метод во view, можно ли как-то автоматически получить объект как это сделано например в том же ASP.Net MVC? Или нужно обязательно руками всегда доставать json и десериализовать его? То же хотелось бы узнать про отдельные параметры передаваемые например через GET, чтобы не дербанить каждый раз request объект, а видеть их сразу в параметрах.
Решение задачи: «Десериализация json как в ASP.Net MVC»
textual
Листинг программы
from rest_framework.response import Response from rest_framework.views import APIView from rest_framework import status from django.shortcuts import get_object_or_404 from django.http import HttpResponse from my_app.models import PostModel class PostCreate(APIView): # используется для POST-запросов def post(self, request, format=None): try: PostModel.objects.create(**request.DATA) except Exception as err: return Response({"detail": "Error create post", "message": err.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return Response({'detail': 'Success create'}, status=status.HTTP_201_CREATED) # Вариант с использованием json.loads def post_create(request): try: post_data = json.loads(request.body) except Exception as err: return HttpResponse(json.dumps({"detail": "Error load json data", "message": err.message}), status=500, content_type='application/json') try: PostModel.objects.create(**post_data) except Exception as err: return HttpResponse(json.dumps({"detail": "Error create post", "message": err.message}), status=500, content_type='application/json') return HttpResponse(json.dumps({'detail': 'Success create'}), status=201, content_type='application/json')
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д