zoukankan      html  css  js  c++  java
  • Rest_Framework--routers

    路由
    可以通过路由as_view()传参 根据请求方式的不同执行对应不同的方法
    在routers模块下 封装了很多关于路由的方法 , 最基础的BaseRouter类,给我提供自定制的接口。
     
    rest_framework也为我们的url进行了优化,我们以前写的url还是有很大的代码重复性,
    rest_framework 中的routers模块中DefaultRouter类中提供了方法,这个只能配合modelviewset使用,因为register只能 注册一个视图函数。
    from django.conf.urls import url,include
    from django.contrib import admin
    from api_demo.views import BookViewSet,PublishViewSet,LoginViewset
    from rest_framework import routers
    router=routers.DefaultRouter() #生成router对象
    router.register(r'books',BookViewSet) #这一句话就会生成books需要的所有的url
    urlpatterns = [
        url(r'^',include(router.urls)), #引入include
        url(r'^admin/', admin.site.urls),
        # url(r'^books/$', BookViewSet.as_view({"get":"list","post":"create"})),
        # url(r'^books/(?P<pk>d+)/$',BookViewSet.as_view({"get":"retrieve","put":"update","patch":"partial_update",'delete': 'destroy'}),name="books"),
        
    ]
    这个方法的对于超链接Hylink来说name属性已经变了,这时候,我们在序列化中设置hylink的时候view_name属性应该注意。我们来看一下
    ^ ^publishes/$ [name='publish-list']
    ^ ^publishes.(?P<format>[a-z0-9]+)/?$ [name='publish-list']
    ^ ^publishes/(?P<pk>[^/.]+)/$ [name='publish-detail']
    ^ ^publishes/(?P<pk>[^/.]+).(?P<format>[a-z0-9]+)/?$ [name='publish-detail']

  • 相关阅读:
    css 去除input框边框 鼠标禁用状态 背景颜色
    css 文字边框
    搭建简易的Vue项目
    那些年遇到的Bug
    vue 点击弹出下拉菜单 点击其他页面收回菜单
    css 控制文本显示
    css tips提示框 三角形 + 框
    vue 细节 规范(只要不断片,持续的更新.....)
    @click.self
    工欲善其事,必先利其器
  • 原文地址:https://www.cnblogs.com/absoluteli/p/14129095.html
Copyright © 2011-2022 走看看