【发布时间】:2017-02-02 09:24:21
【问题描述】:
我想用 Python 和 Django Rest 框架创建一个 web api。到目前为止,我阅读的教程包含模型和序列化程序来处理和存储数据。我想知道是否有更简单的方法来处理发布到我的 api 的数据,然后返回 JSON 响应而不存储任何数据。
目前,这是我的 urls.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
这是我的观点.py
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。
我目前正试图接收以“其他”结尾的 url 并处理该 JSON 的 JSON 数据,然后再使用一些自定义 JSON 进行响应。
编辑
除了提供的解决方案之外,这两个链接也很有帮助:
Django REST framework: non-model serializer
http://jsatt.com/blog/abusing-django-rest-framework-part-1-non-model-endpoints/
【问题讨论】:
标签: python json django rest web