Django基础教程(130)Django ViewSets和Routers之显式将URL和ViewSets绑定起来:Django相亲角:让URL和ViewSets“看对眼”,Router就是那个最强

嘿,Django侠客们!今天我们来聊一个能让你开发效率直接起飞的话题——Django REST Framework (DRF) 里的ViewSets和Routers。

我知道,我知道,你可能早就听过它们的大名。网上教程一抓一大把,基本都是告诉你:“用ModelViewSet,再往router里一register,哇塞,一套完整的CRUD API就诞生了!太神奇了!”

这感觉就像你去了一个大型相亲现场,Router这个“媒婆”大手一挥:“这俩,成了!”你就莫名其妙地和一个完整的API套餐绑定在了一起。爽是爽,但有时候你是不是也觉得……有点太“包办婚姻”了?你甚至没来得及问一句:“那个update方法,我能不能换个名字?那个create的路径,能不能别叫/users/,我想叫/signup/行不行?”

当然行!今天,咱们就要打破这种“包办婚姻”,走进一个更高级的“自由恋爱”市场。我们要显式地、手动地、充满爱意地,把特定的URL和ViewSets里的特定方法绑定起来。而Router,不再是那个独断专行的媒婆,而是变成了一个听你指挥的“最强僚机”。

第一幕:回忆一下,“包办婚姻”是怎么个事?

在深入“自由恋爱”之前,我们先快速回顾一下传统的“包办”流程。假设我们有个UserViewSet,它长这样:

# views.py
from rest_framework import viewsets, status
from rest_framework.decorators import action
from rest_framework.response import Response
from .models import User
from .serializers import UserSerializer

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

然后,在urls.py里,我们请出媒婆DefaultRouter

# urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import UserViewSet

router = DefaultRouter()
router.register(r'users', UserViewSet) # 媒婆开始牵线!

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

就这么两行代码,Router媒婆就自动为你生成了一整套URL:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

值引力

持续创作,多谢支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值