• drf 路由控制


    url控制器

    原始的url路由

    from django.conf.urls import url
    from app01 import views
    urlpatterns = [
        url(r'^books/$', views.BookView.as_view()),
        url(r'^books/(?P<pk>d+)$', views.BookDetailView.as_view()),
    ]

    半自动的url路由设置(重点,单一类中支持多个路由)

    主要是依靠ViewSetMixin(重新定义的as_view函数进而重新分配路由)

    from rest_framework.viewsets import ViewSetMixin
    class ttt(ViewSetMixin,APIView):#继承关系,必须先继承ViewSetMixin函数,再继承APIView函数
        #为的是在使用ViewSetMixin中重写的as_view函数
        def aaa(self,request):
            return Response('aaaa')
    
        def bbb(self,request):
            return Response('bbbbbbb')
    
        def ccc(self,request):
            return Response('cccccccc')

    那么在路由中就可以怎么书写

    url(r'^ttt/', views.ttt.as_view({'get':'aaa','post':'bbb'})),
    url(r'^ggg/',views.ttt.as_view({'get':'ccc',}))
    #这样的方式,就可以使得一个类可以支持很多函数

    全自动的url路由设置

    是在使用ModelViewSet的类

    from rest_framework.viewsets import ModelViewSet
    class PublishView(ModelViewSet):
        queryset = models.Publish.objects.all()
        serializer_class = PublishSer

    同时需要在路由中配置

    from django.conf.urls import include
    #include 路由分发
    from rest_framework import routers
    router = routers.DefaultRouter()
    #生成对象
    router.register('publish',views.PublishView)
    #配置视图层,和路由名称

    在路由中的使用

    url(r'', include(router.urls)),

     

     

  • 相关阅读:
    补充之前对相机渲染的认识理解
    小公举---Content size Fitter 和 Aspect Radio Fitter
    UGUI事件响应体系
    基础组件RectTransform
    自适应神器------Canvas Scaler (画布定标器)
    UGUI初学习--------Canvas
    C#的集合类型及使用技巧
    C#基础之流程控制语句详解
    C#中的数据类型转换
    C#的基础数据类型
  • 原文地址:https://www.cnblogs.com/msj513/p/10435372.html
Copyright © 2020-2023  润新知