Django REST Framework路由Routes
在Django REST Framework中,我们可以使用路由来定义API的访问入口。以下是一些使用Django REST Framework定义路由的方法。
方法一:使用@api_view
装饰器
在Django REST Framework中,我们可以使用@api_view
装饰器来定义一个视图。
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.request import Request
@api_view(['GET'])
def hello_world(request):
return Response({'message': 'Hello, World!'})
方法二:使用@action
装饰器
在Django REST Framework中,我们可以使用@action
装饰器来定义一个视图。
from rest_framework import viewsets
class HelloViewSet(viewsets.ViewSet):
@action(detail=False, renderer_classes=[renderers.StaticHTMLRenderer])
def hello(self, request):
return Response("Hello, World!")
方法三:使用@list_route
和@detail_route
装饰器
在Django REST Framework中,我们可以使用@list_route
和@detail_route
装饰器来定义一个视图。
from rest_framework import viewsets
from rest_framework.decorators import list_route, detail_route
class HelloViewSet(viewsets.ViewSet):
@list_route(methods=['get'])
def hello(self, request):
return Response("Hello, World!")
@detail_route(methods=['get'])
def hello(self, request, pk=None):
return Response("Hello, World!")
方法四:使用函数基视图
在Django REST Framework中,我们可以使用函数基视图来定义一个视图。
from rest_framework.response import Response
from rest_framework.views import APIView
class HelloAPIView(APIView):
def get(self, request):
return Response({'message': 'Hello, World!'})
方法五:使用类视图
在Django REST Framework中,我们可以使用类视图来定义一个视图。
from rest_framework import generics
class HelloView(generics.GenericAPIView):
def get(self, request):
return Response({'message': 'Hello, World!'})
方法六:使用ModelViewSet
在Django REST Framework中,我们可以使用ModelViewSet来定义一个视图。
from rest_framework import viewsets
class HelloViewSet(viewsets.ModelViewSet):
queryset = Hello.objects.all()
serializer_class = HelloSerializer
方法七:使用router
在Django REST Framework中,我们可以使用router来自动注册一些视图。
from django.conf.urls import url, include
from rest_framework.routers import DefaultRouter
from view import HelloViewSet
router = DefaultRouter()
router.register(r'hello', HelloViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
]
以上七种方法都可以用来定义Django REST Framework的路由,具体使用哪一种,可以根据实际需求和项目规模来决定。
评论已关闭