DW学习笔记:Django后端开发入门之Task06

DW学习笔记:Django后端开发入门之Task06

DefaultRouter的使用

1. DefaultRouter简介

DefaultRouter是一个用于自动生成API的URLs的类。它能够帮助开发者快速地创建一套遵循RESTful设计的API,而无需手动定义每一个URL模式。DefaultRouter会自动为我们的views创建对应常见RESRful操作的URLs,比如实现获取对象的列表(GET)、获取特定对象(GET)、创建新对象(POST)、更新一个对象(PUT/PATCH),以及删除一个对象(DELETE)。

2.DefaultRouter的作用

  1. 提高效率:通过自动生成URLs,开发者无需手动为每个API操作定义一个URL模式,从而提高了开发效率。
  2. 保持一致性DefaultRouter生成的URLs遵循RESTful设计原则,有助于保持API的一致性和可预测性。
  3. 简化代码:使用DefaultRouter可以减少urls.py文件中的代码量,使代码更加简洁。

3.使用方法

3.1.导入库函数

urls.py文件中导入DefaultRouter,以及想要包含在路由器中的ViewSet

# 导入DefaultRouter
from rest_framework.routers import DefaultRouter
# 导入需要的viewset与其他函数
from django.contrib import admin
from django.urls import path
from apps.DW_study.views import *

from apps.DW_study.views import *中的apps.DW_study.views应该根据实际情况去设置,在我的项目中,应用DW_study保存在apps文件夹下。总之,要保证这里的路径是指向应用中的ViewSet

3.2.实例化DefaultRouter并注册ViewSet

在导入了必要库函数之后,实例化DefaultRouter,并且通过register方法注册ViewSet

router = DefaultRouter()
router.register('GoodsCategory', GoodsCategoryViewSet)

在一般的项目中,要确保register方法中的两个参数指向实际的路径。

# register的原始定义
class BaseRouter:
    def register(self, prefix, viewset, basename=None):

register的原始定义中,prefix是url的基础路径,ViewSet是与该路径关联的ViewSetbasename是一个可选参数,它的作用是为生成的urls提供一个更清晰的名称。

3.3.在RUL配置中包含路由器的RULs

利用path工具,更新定义urlpatterns列表。

urlpatterns = [
    path('admin/', admin.site.urls),
    path('filtergoodscategory/', FilterGoodsCategory),
    path('insertgoodscategory/', InsertGoodsCategory),
    path('filtergoodscategoryapi/', FilterGoodsCategoryAPI.as_view()),
    path('getgoods/', GetGoods.as_view()),
]
3.4.将router生成的urls添加到urlpatterns中

为了将DefaultRouter自动生成的URL模式添加到urlpatterns中,使用一下方法。这样,除了手动定义的URL模式外,还包括了由DefaultRouterGoodsCategoryViewSet生成的RESTful API URL。

urlpatterns += router.urls

4. 运行展示

4.1.创建两个新对象

在这里插入图片描述

4.2. 获取id2的对象

在这里插入图片描述

获取id为3的对象

因为不存在,所以提示404 Not Found
在这里插入图片描述

5.报错

在学习这一节内容是,遇到的报错主要是路径设置的问题,请务必保证路径指向均正确。
值得注意的点包括,app的路径、库函数的导入方法……

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值