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

路由控制

基本路由写法

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取出当前访问哪个版本,相应的取执行相应版本的代码

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

时间: 2024-11-08 05:17:38

路由控制,版本控制,解析器,响应器的相关文章

Django框架深入了解_04(DRF之url控制、解析器、响应器、版本控制、分页)

一.url控制 基本路由写法:最常用 from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^books/', views.Books.as_view()), url(r'^book/', views.Book.as_view()), url(r'^login/

DRF url控制 解析器 响应器 版本控制 分页(常规分页,偏移分页,cursor游标分页)

url控制 第二种写法(只要继承了ViewSetMixin) url(r'^pub/$',views.Pub.as_view({'get':'list','post':'create'})), #获取所有记得路由后面加$结束符 #pub/?format=json url(r'^pub\.(?P<format>\w+)$',views.Pub.as_view({'get':'list','post':'create'})), #pub.json url(r'^pub/(?P<pk>\

optparse 模块—— 命令行选项的解析器

15.5 optparse 模块--  命令行选项的解析器 注意:从2.7版本后不再使用:optparse模块不推荐使用,python不再更新该模块,后续的发展将推荐使用argparse模块. 支持python2.3及以上版本 optparse模块比旧的getopt模块具有更方便.更灵活.功能更强大的解析命令行选项的库.optparse使用一种更加声明式的命令行解析风格:你创建一个OptionParser实例,填充选项,并解析命令行.optparse允许用户指定选项,使用传统的GNU/POSIX

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

解析器 urlencode,formdata,json urlencode编码,body体中的数据格式: name = laqz&age=18&xx =yy json编码:{"name":"lqz","age":18} formdata: 需要有数据部分和文件部分的分割 作用: 根据请求头 content-type 选择对应的解析器对请求体内容进行处理. 有application/json,x-www-form-urlencode

rest_framework之解析器、路由控制、分页

解析器 我们都知道,网络传输数据只能传输字符串格式的,如果是列表.字典等数据类型,需要转换之后才能使用 但是我们之前的rest_framework例子都没有转换就直接可以使用了,这是因为rest_framework有一套解析器, 默认他会帮我们转换3种类型的数据,分别是,JSONParser,FormParser,MultiPartParser 而如果我们需要转换其他数据,需要在视图类里配置parser_classes参数,如下: from rest_framework.parsers impo

路由控制和响应器

1.路由控制 分为三种: 1)基本路由: url(r'^books/', views.Books.as_view()), 2)半自动路由 url(r'^publish/',views.Publish.as_view({'get':'list','post':'create'})), url(r'^publish/(?P<pk>\d+)',views.Publish.as_view({'get':'retrieve','put':'update','delete':'destroy'} 必须继承

DRF 版本、认证、权限、限制、解析器和渲染器

目录 一.DRF之版本控制 为什么要有版本控制? DRF提供的版本控制方案 版本的使用 全局配置 局部配置(使用较少) 二.DRF之认证 内置的认证 步骤 三.DRF之权限 1.自定义一个权限类 2.权限 局部配置 3.权限 全局配置 四.DRF之限制 1.使用自定义限制类 1.1自定义一个限制类 1.2限制 局部配置 1.3限制 全局配置 2.使用内置限制类 2.1定义内置限制类 2.2全局配置 五.DRF之分页 1.为什么要使用分页 2.DRF使用分页器 2.1分页模式 2.2全局配置 2.

Django路由控制

目录 Django--路由控制 Django中路由的作用 简单的路由配置 有名分组 路由分发 反向解析 名称空间 django2.0版的path django版本区别 django2.0 path和re_path 基本示例 path转化器 注册自定义转化器 伪静态 虚拟环境 Django--路由控制 Django中路由的作用 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来的

Spring映射器、适配器、解析器

1 springmvc的映射器和适配器 1.1springmvc的映射器 根据客户端请求的url,找到处理本次请求的handler(处理器),将url和controller关联起来 1.2springmvc的适配器 对映射器查找到的controller中的方法进行调用. 第一种:Controller适配 第二种:HttpRequestHandler适配 第三种:注解适配 不同的处理器,对应不同的适配器,但是所有适配器最终都返回ModelAndView对象,springmvc通过对ModelAnd