路由设置和视图选择

4 篇文章 0 订阅
3 篇文章 0 订阅

路由设置和视图选择

01-自动生成路由的使用

  • 自动生成路由只会通过我们继承的扩展类来生成路由规则,我们自定义的部分方法是无法生成的

    from rest_framework.routers import SimpleRouter, DefaultRouter
    
    urlpatterns = [...]
    
    route = DefaultRouter()
    route.register('books_drf', view_set.BooksModelViewSet, base_name='book')
    
    register(prefix, viewset, base_name)
    prefix 该视图集的路由前缀
    viewset 视图集
    base_name 路由名称的前缀
    
    urlpatterns += route.urls
    

02-actions装饰器的使用

  • action装饰器参数中detail-False则不能自动正则匹配路由规则,反之则可以自动生成。

    @action(methods=['get'], detail=False)
    def latest(self, request):
        ...
    
        @action(methods=['put'], detail=True)
        def read(self, request, pk):
            ...
    
  • 自动生成路由只能在视图集中使用

  • self。aciton也只能在视图集中使用

  • drf调试页面

03-两个路由类的区别

  • SimpleRouter

  • DefaultRouter继承自SimpleRouter自动匹配首页

    **总结:**DefaultRouter与SimpleRouter的区别是,DefaultRouter会多附带一个默认的API根视图,返回一个包含所有列表视图的超链接响应数据。

04-视图和视图集使用场景分析

  • 根据具体功能使用不同视图或视图集
    • 使用单一功能时:视图
    • 使用增删改查多个功能时:视图集
  • 强行使用视图集可能造成资源浪费
    • 会造成数据不安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值