Десериализация json как в ASP.Net MVC - Python

Узнай цену своей работы

Формулировка задачи:

Всем доброго дня. Недавно только вот начал разбираться с Python и Django, до этого довольно тесно работал с ASP.Net MVC. Пытаюсь немного въехать в чём основные различия и облегчить себе жизнь. Собственно вопрос: Если послать json в метод во view, можно ли как-то автоматически получить объект как это сделано например в том же ASP.Net MVC? Или нужно обязательно руками всегда доставать json и десериализовать его? То же хотелось бы узнать про отдельные параметры передаваемые например через GET, чтобы не дербанить каждый раз request объект, а видеть их сразу в параметрах.

Решение задачи: «Десериализация json как в ASP.Net MVC»

textual
Листинг программы
  1. from rest_framework.response import Response
  2. from rest_framework.views import APIView
  3. from rest_framework import status
  4. from django.shortcuts import get_object_or_404
  5. from django.http import HttpResponse
  6. from my_app.models import PostModel
  7.  
  8. class PostCreate(APIView):
  9.     # используется для POST-запросов
  10.     def post(self, request, format=None):
  11.         try:
  12.             PostModel.objects.create(**request.DATA)
  13.         except Exception as err:
  14.             return Response({"detail": "Error create post", "message": err.message}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
  15.  
  16.         return Response({'detail': 'Success create'}, status=status.HTTP_201_CREATED)
  17.  
  18. # Вариант с использованием json.loads
  19. def post_create(request):
  20.     try:
  21.         post_data = json.loads(request.body)
  22.     except Exception as err:
  23.         return HttpResponse(json.dumps({"detail": "Error load json data", "message": err.message}), status=500, content_type='application/json')
  24.     try:
  25.         PostModel.objects.create(**post_data)
  26.     except Exception as err:
  27.         return HttpResponse(json.dumps({"detail": "Error create post", "message": err.message}), status=500, content_type='application/json')
  28.     return HttpResponse(json.dumps({'detail': 'Success create'}), status=201, content_type='application/json')

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут