当前位置: 首页 > news >正文

七、Drf版本组件

七、版本组件

7.1基于GET请求

#url.py
urlpatterns = [    path('home/',views.HomeView.as_view(),name='home'), ]
#setting.py
REST_FRAMEWORK = {#定义版本号的名称,默认为'version''VERSION_PARAM':'version', #允许的版本号值,如果前端传递过来的版本号的值不在此列表内,会抛出错误'ALLOWED_VERSIONS':['v1','v2'],
}
#视图类
class HomeView(APIView):authentication_classes = []versioning_class = QueryParameterVersioningdef get(self,request):#根据路由名称反向生成url,会把版本信息也带上url=request.versioning_scheme.reverse('home',request=request)       #返回版本号和url        return Response({'版本':request.version,'url':url})

效果:

在这里插入图片描述

7.2基于路由url

#url.py
urlpatterns = [   path('home/<str:version>/',views.HomeView.as_view(),name='home'),    ]
#视图类
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.versioning import QueryParameterVersioning
from rest_framework.versioning import URLPathVersioning# Create your views here.class HomeView(APIView):authentication_classes = []versioning_class = URLPathVersioningdef get(self,request,*args,**kwargs):#根据路由名称反向生成url,会把版本信息也带上url=request.versioning_scheme.reverse('home',request=request)#返回版本号和url  return Response({'版本':request.version,'url':url})

效果:

在这里插入图片描述

7.3基于Accept请求头

#url.py
urlpatterns = [# path('admin/', admin.site.urls),path('home/',views.HomeView.as_view(),name='home'),path('login/', views.LoginView.as_view()),path('user/', views.UserView.as_view()),path('order/', views.OrderView.as_view()),]
#视图类
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.versioning import QueryParameterVersioning
from rest_framework.versioning import URLPathVersioning
from rest_framework.versioning import AcceptHeaderVersioning# Create your views here.class HomeView(APIView):authentication_classes = []versioning_class = AcceptHeaderVersioningdef get(self,request,*args,**kwargs):#根据路由名称反向生成url,会把版本信息也带上url=request.versioning_scheme.reverse('home',request=request)#返回版本号和url return Response({'版本':request.version,'url':url})

效果:

在这里插入图片描述

7.4全局配置
#settings.py
#drf配置
REST_FRAMEWORK = {   #这里配置完以后,就不需要在每个视图类中配置版本组件了'DEFAULT_VERSIONING_CLASS':'rest_framework.versioning.AcceptHeaderVersioning'
}

http://www.mrgr.cn/news/43264.html

相关文章:

  • 举例说明 .Net Core 单元测试中 xUnit 的 [Theory] 属性的用法
  • [C++]使用纯opencv部署yolov11-seg实例分割onnx模型
  • 大数据实时数仓Hologres(四):基于Flink+Hologres搭建实时数仓
  • 组合数求法汇总
  • 【前端】前端数据转化为后端数据
  • GPT新功能Canvas!对普通用户最友好的功能!
  • OutputDebugString函数分析
  • 初识数据结构--时间复杂度 和 空间复杂度
  • NX二次开发 遍历图层中的对象UF_LAYER_cycle_by_layer
  • Linux驱动开发常用调试方法汇总
  • 【PyTorch】图像分割
  • 【Linux】详解Linux下的工具(内含yum指令和vim指令)
  • MES系列-MES赋能智能工厂
  • jQuery——事件处理
  • Linux驱动开发(速记版)--热插拔
  • 数据服务-存储服务(NFS)
  • 王者农药更新版
  • 好用的苹果笔推荐!五大高品质王者款!附避坑宝典助你选购无忧!
  • Java中的封装、继承、多态
  • 视频批量剪辑神器:文案素材与视频合并剪辑一站式解决方案