Login
网站首页 > 文章中心 > 其它

django_drf框架自带的路由及最简化的视图

作者:小编 更新时间:2023-08-07 07:28:06 浏览量:387人看过

针对该话题,我介绍一下关于Django DRF框架自带的路由和最简化的视图的完整攻略.

第一段:Django DRF框架自带的路由

在Django DRF框架中,提供了多种路由匹配方法,其中最常用的是DRF自带的路由匹配器.

首先,需要导入include和default-router两个路由相关的模块:

from django.urls import path, include
from rest_framework.routers import DefaultRouter

接着,定义一个名为router的DefaultRouter对象,并在其中添加对应的路由路径:

router = DefaultRouter()
router.register(r'users', UserViewSet)


其中,register()方法的第一个参数是想要对其进行路由的路径名,第二个参数是对应的视图函数.

最后,将路由注册到url路由中:

urlpatterns = [
path('', include(router.urls))
]

这里的include()方法的作用是将router.urls中的路由路径都添加到url路由中.

通过以上步骤,我们完成了Django DRF框架自带的路由配置.

第二段:最简化的视图

在Django DRF框架中,视图函数通常为继承APIView类的子类,同时可以使用Django DRF框架自带的响应类实现不同的响应.

例如:

from rest_framework.views import APIView
from rest_framework.response import Response

class HelloAPIView(APIView):
    return Response({'msg': 'hello, world!'})

在以上的代码中,我们定义了一个名为HelloAPIView的类,它继承自APIView类,并实现了get()方法.通过Response类,它可以返回由我们指定的响应数据.

在完成以上步骤之后,还需要将视图类添加到路由中.可以使用如下方式进行添加:

urlpatterns = [
path('hello/', HelloAPIView.as_view(), name='hello'),
]

以上的代码,将名为HelloAPIView的类作为视图函数添加到了路径名为hello/的路由中.

示例1

今天这一节,我们看一个最简的APIView的代码示例:

from rest_framework.views import APIView
from rest_framework.response import Response


class DemoView(APIView):

    return Response({'hello': 'world!'})

在上面的代码中,定义了一个名为DemoView的APIView视图,它实现了get()方法,通过Response()方法返回响应数据{'hello': 'world!'}.

示例2

那么,此时此刻呢,我将展示如何自定义一个序列化器类,以便在视图函数中返回序列化的数据.示例如下:

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import serializers


class DemoSerializer(serializers.Serializer):
    return Response(serializer.validated_data)

在上面的代码中,我们首先定义了一个DemoSerializer的序列化器类,并在其中定义了三个字段.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章