不带存储的Python Django Rest Post API

不带存储的Python Django Rest Post API,python,json,django,rest,web,Python,Json,Django,Rest,Web,我想用Python和Django Rest框架创建一个web api。到目前为止,我所阅读的教程包含了模型和序列化程序来处理和存储数据。我想知道是否有一种更简单的方法来处理发布到api中的数据,然后返回JSON响应而不存储任何数据 目前,这是我的URL.py from django.conf.urls import url from rest_framework import routers from core.views import StudentViewSet, UniversityVie

我想用Python和Django Rest框架创建一个web api。到目前为止,我所阅读的教程包含了模型和序列化程序来处理和存储数据。我想知道是否有一种更简单的方法来处理发布到api中的数据,然后返回JSON响应而不存储任何数据

目前,这是我的URL.py

from django.conf.urls import url
from rest_framework import routers
from core.views import StudentViewSet, UniversityViewSet, TestViewSet

router = routers.DefaultRouter()
router.register(r'students', StudentViewSet)
router.register(r'universities', UniversityViewSet)
router.register(r'other', TestViewSet,"other")

urlpatterns = router.urls
这是我的观点

from rest_framework import viewsets
from rest_framework.decorators import api_view
from rest_framework.response import Response
from .models import University, Student
from .serializers import UniversitySerializer, StudentSerializer

import json
from django.http import HttpResponse

class StudentViewSet(viewsets.ModelViewSet):
    queryset = Student.objects.all()
    serializer_class = StudentSerializer

class UniversityViewSet(viewsets.ModelViewSet):
    queryset = University.objects.all()
    serializer_class = UniversitySerializer

class TestViewSet(viewsets.ModelViewSet):    
    def retrieve(self, request, *args, **kwargs):
        return Response({'something': 'my custom JSON'})
关于学生和大学的前两部分是在学习Django设置教程之后创建的。我不需要它为创建、编辑和删除对象提供的功能。我试着使用我创建的TestViewSet

我目前一直在尝试接收以“other”结尾的url上发布的JSON数据,并在使用一些自定义JSON响应之前处理该JSON

编辑

除了提供的解决方案外,这两个链接也很有用:

您可以使用它们的泛型类(它没有任何模型或序列化程序的附件),然后根据HTTP请求类型自己处理请求。例如:

class RetrieveMessages(APIView):
    def post(self, request, *args, **kwargs):
        posted_data = self.request.data
        city = posted_data['city']
        return_data = [
            {"echo": city}   
        ]
        return Response(status=200, data=return_data)

     def get....

感谢您的回复-APIView适合此任务!