zoukankan      html  css  js  c++  java
  • 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)),

     

     

  • 相关阅读:
    Plot the figure of K-SVCR
    利用sklearn计算文本相似性
    djago 定义后台地址
    django admim后台不转义提交的html
    django 静态css js文件配置
    django后台的制作
    django 设置不带后缀的访问路径
    阿里云ECS服务器 常见问题(1)
    python 将word另存为txt
    python遍历某一位置所有文件夹中的文件
  • 原文地址:https://www.cnblogs.com/msj513/p/10435372.html
Copyright © 2011-2022 走看看