码迷,mamicode.com
首页 > 其他好文 > 详细

路由控制,版本控制,解析器,响应器

时间:2019-07-05 20:46:31      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:pos   视图   bsp   register   是什么   取值   code   完成   控制   

路由控制

基本路由写法

urlpatterns = [
    url(r^admin/, admin.site.urls),
    url(r^register/, views.register),
    url(r^login/, views.Login.as_view()),
    url(r^test/, views.Authtest.as_view()),
]

 

第二种写法

必须继承只要继承了ViewSetMixin:

urlpatterns = [
           url(r^publish/$, views.PublishView.as_view({get:list,post:create})),
           url(r^publish\.(?P<format>\w+)$, views.PublishView.as_view({get:list,post:create})),
           url(r^publish/(?P<pk>\d+)$,views.PublishView.as_view({get:retrieve,delete:destroy,put:update})),
]

 

第三种

自动生成路由,必须继承ModelViewSet,本质上是继承ViewSetMixin:

            #SimpleRouter 自动生成两条路由
                from rest_framework.routers import SimpleRouter,DefaultRouter
                router=SimpleRouter()
                router.register(publish,views.PublishView)
                、、、、
                url(r‘‘, include(router.urls)),
            #DefaultRouter自动生成四条路由
                from rest_framework.routers import SimpleRouter,DefaultRouter
                router=DefaultRouter()
                router.register(publish,views.PublishView)
                、、、、
                url(r‘‘, include(router.urls)),

 

 

解析器

(一般不需要动,项目最开始全局配置一下就可以了)
        作用是控制我的视图类能够解析前端传过来的格式是什么样的
        全局使用:
            在setting中配置:
                REST_FRAMEWORK = {
                    "DEFAULT_PARSER_CLASSES":[
                        ‘rest_framework.parsers.JSONParser‘,
                    ]

                }
        全局使用:
            在视图类中:
                parser_classes=[JSONParser,]
                
        -源码流程:
            -当调用request.data的时候去执行解析方法----》根据传过来的编码方式选择一个解析器对象,调用解析器对象的parser方法完成解析

 

 

响应器

        -from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer
        -不用动,就用全局配置即可
        -全局使用:
            -在setting中配置
                ‘DEFAULT_RENDERER_CLASSES‘:[xxx,xxx]
        -局部使用:
            -在视图类中配置:
                renderer_classes = [JSONRenderer, BrowsableAPIRenderer]            

 

版本控制

        -作用用于控制版本
        -全局使用:
            -在setting中配置:    
                ‘DEFAULT_VERSIONING_CLASS‘:‘rest_framework.versioning.URLPathVersioning‘,
                ‘DEFAULT_VERSION‘: ‘v1‘,  # 默认版本(从request对象里取不到,显示的默认值)
                ‘ALLOWED_VERSIONS‘: [‘v1‘, ‘v2‘],  # 允许的版本
                ‘VERSION_PARAM‘: ‘version‘  # URL中获取值的key
            -路由需要修改
                -url(r‘^(?P<version>[v1|v2]+)/test/‘, views.Test.as_view()),
            -在视图类中就可以通过:request.version取出当前访问哪个版本,相应的取执行相应版本的代码

 

路由控制,版本控制,解析器,响应器

标签:pos   视图   bsp   register   是什么   取值   code   完成   控制   

原文地址:https://www.cnblogs.com/tuanzibuku/p/11140515.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!