Rest Framework-版本控制-Django缓存机制-跨域问题

一、版本控制
from rest_framework.request import Request
from  rest_framework.views import  APIView
from rest_framework.parsers import JSONParser
from rest_framework.versioning import QueryParameterVersioning,URLPathVersioning,AcceptHeaderVersioning
class VersionTest(APIView):
    parser_classes=[JSONParser]
    versioning_class=AcceptHeaderVersioning
    def get(self, request,*args,**kwargs):
        print(request.version)
        print(request.versioning_scheme)
        return Response()
'''
# 版本控制
-内置的类
    QueryParameterVersioning 基于get传参的方式
    AcceptHeaderVersioning 基于请求头的
    NamespaceVersioning 基于名称空间的
    URLPathVersioning   基于正则的方式(推荐)

-局部使用
    在视图类中配置
    versioning_class=URLPathVersioning
-全局使用
REST_FRAMEWORK = {
    # 'DEFAULT_VERSIONING_CLASS':'rest_framework.versioning.QueryParameterVersioning',
    'DEFAULT_VERSION': 'v1',  # 默认版本(从request对象里取不到,显示的默认值)
    'ALLOWED_VERSIONS': ['v1', 'v2'],  # 允许的版本
    'VERSION_PARAM': 'version'  # URL中获取值的key
}

-例外:
    用基于正则的方式,需要修改urls.py
    url(r'^(?P<version>[v1|v2]+)/versiontest/', views.VersionTest.as_view()),
-在视图类的方法中可以取出版本号
    reques.version
'''
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值