zoukankan      html  css  js  c++  java
  • drf之路由

    一、基本方式:

      1、path/url('targets/', views.TargetsView.as_view())。

      2、re_path/url('target(?P<pk>d+)', Targetviews.View.as_view())。

    二、继承了ViewSetMixin系列,可以写入actions的情况

      1、path/url('targets/', views.TargetsView.as_view(actions={'get':'list','post':'create'}))。

      2、re_path/url('target(?P<pk>d+)', Targetviews.View.as_view(actions={'get':'retrieve','put':'update','delete':'destroy'}))。

    三、继承了ModelViewSet,自动路由的写法:
      1、第一步:导入routers模块,rest_framework.routers。

      2、第二步:有两个路由器类可选,使用其一,生成路由器对象,例如,router=路由器类()。

        ①routers.SimpleRouter:生成两条路由。

        ②routers.DefaultRouter:生成更多路由。

      3、第三步:注册,router.register('路由前缀','继承了ModelViewSet的视图类','路由别名'),例如,router.register('target',views.TargetView,'xxx')。

      4、第四步:生成路由,auto_urls=router.urls。

      5、第五步:合并路由,urlpatterns+=auto_urls。

    四、有参装饰器action

      1、用途:给注册了自动路由的视图类增加自定义方法。

      2、用法:在自定义方法上方,@action(methods=['GET','POST'],detail=False)。

      3、路由:.../target/自定义方法名/。

      4、参数:

        ①methods:请求方式,列表形式。

        ②detail:布尔类型,是否需要传入<pk>。

  • 相关阅读:
    SpringBoot-源码解析
    SpringBoot快速部署
    vue.js
    数据库设计--三范式
    mysql 建表及练习
    索引复制迁移
    nginx检查、重启、、、
    设计模式--Strategy 策略模式
    设计模式--设计原则
    设计模式--Template Method(模板方法)
  • 原文地址:https://www.cnblogs.com/caoyu080202201/p/13275749.html
Copyright © 2011-2022 走看看