当前位置:
首页 > Python基础教程 >
-
Django REST Framework之版本控制
何谓版本控制?
为什么需要版本控制?
一个项目在升级迭代的时候,不会立马抛弃旧的版本,甚至会出现多个版本共存同时维护的情况,因此需要版本控制。
版本控制做了什么?
版本控制做的事情很简单,在前后端分离的情况下,只是对请求做判断,判断这是哪个版本的请求,然后将版本信息封装入request对象中。
自定义版本控制类
1.settings.py配置
1
2
3
|
REST_FRAMEWORK = { "DEFAULT_VERSIONING_CLASS" : "utils.version.MyVersion" , # 默认使用的版本控制类 } |
2.编写自定义版本控制类(根据请求参数)
1
2
3
4
5
|
class MyVersion( object ): def determine_version( self , request, * args, * * kwargs): "版本号携带在请求" version = request.query_params.get( "version" , "v1" ) # 请求参数中查找有无version字段,如果没有默认是v1 return version # 将版本返回 |
3.视图中获取
1
2
|
request.version # 版本号 request.versioning_scheme # 版本控制类的实例 |
使用DRF的版本控制类
Django REST Framework为我们提供了5个版本控制类,分别是五种不同的判断方式,基本能满足开发需求。
1
2
3
4
5
|
1.AcceptHeaderVersioning 将版本信息放在请求头 2.URLPathVersioning 将版本信息放在URL中, 3.NamespaceVersioning 将版本信息放在URL中,不同之处在于Django路由的处理方式,使用命名空间 4.HostNameVersioning 将版本信息放在域名的最低一层 5.QueryParameterVersioning 降版本信息放在请求参数中 |
直接在settings中配置就可以用:
1
2
3
4
5
6
|
REST_FRAMEWORK = { "DEFAULT_VERSIONING_CLASS" : "rest_framework.versioning.QueryParameterVersioning" , "DEFAULT_VERSION" : "v1.0.0" , # 默认的版本,当无法从请求中获取版本信息的时候,默认按照此版本执行 "ALLOWED_VERSIONS" : "v1.0.0, v1.1.0, v2.0.0" , # 允许的版本 "VERSION_PARAM" : "ver" , # 获取版本的参数。 } |
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式