zoukankan      html  css  js  c++  java
  • 十二.Django---framework框架 版本设置

    一 .版本设置(url上版本迭代)

    https://www.jb51.net/article/166249.htm     版本控制

    https://www.cnblogs.com/liqianglog/p/11133615.html    版本使用反向

    https://www.cnblogs.com/welan/p/10141126.html   版本控制流程

    1.局部版本(作用于单个视图)

    settings 

    REST_FRAMEWORK = {
             'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer',
    'rest_framework.renderers.BrowsableAPIRenderer',
    ],

    'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.QueryParameterVersioning',
    'ALLOWED_VERSIONS': ['v1', 'v2','v3','v4'], # 允许的版本
    'VERSION_PARAM': 'version', # 参数
    'DEFAULT_VERSION': 'v1', # 默认版本

    }


    REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ], 'DEFAULT_VERSIONING_CLASS': '', 'ALLOWED_VERSIONS': ['v1', 'v2','v3','v4'], # 允许的版本 'VERSION_PARAM': 'version', # 参数 'DEFAULT_VERSION': 'v1', # 默认版本 }
    INSTALLED_APPS = [

    'rest_framework',
    ]
     
    urls下  settings

    from
    django.conf.urls import url,include from django.contrib import admin urlpatterns = [ url('admin/', admin.site.urls), url(r'^api/', include('myapp.urls')), # url(r'^api/(?P<version>w+)/', include('myapp.urls')), ]
    urls 项目myapp下
    from
    django.conf.urls import url,include from myapp.viwes import show urlpatterns = [ url(r'^home/$', show.HomeViwes.as_view()), # url(r'^home/(?P<version>[v1|v2])$', show.HomeViwes.as_view()), ]
    viwes

    from
    django.shortcuts import render,HttpResponse from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.versioning import QueryParameterVersioning class HomeViwes(APIView): versioning_class = QueryParameterVersioning # 局部配置请求参数处理 版本 def get(self,request,*args,**kwargs): print(request.version,"这是版本啊哈哈哈哈哈") return Response('哈哈哈哈哈哈1111111111') # return HttpResponse("111111111111111111")

    2.全局部版本(推荐作用于每个视图)

    settings

    STATIC_URL = '/static/' REST_FRAMEWORK = { 'DEFAULT_RENDERER_CLASSES':['rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ], 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.URLPathVersioning', 'ALLOWED_VERSIONS': ['v1', 'v2','v3'], # 允许的版本 'VERSION_PARAM': 'version', # 参数 'DEFAULT_VERSION': 'v1', # 默认版本 }
    settings 下urls

    from
    django.conf.urls import url,include from django.contrib import admin urlpatterns = [ url('admin/', admin.site.urls), url(r'^api/', include('myapp.urls')), # url(r'^api/(?P<version>w+)/', include('myapp.urls')), ]
    myapp项目下urls
    from
    django.conf.urls import url,include from myapp.viwes import show urlpatterns = [ # url(r'^home/$', show.HomeViwes.as_view()), url(r'^(?P<version>w+)/home$', show.HomeViwes.as_view()), # url(r'^(?P<version>[v1|v2]+)/home$', show.HomeViwes.as_view()), ]
    viwes

    from
    django.shortcuts import render,HttpResponse from rest_framework.views import APIView from rest_framework.response import Response class HomeViwes(APIView): def get(self,request,*args,**kwargs): print(request.version,"这是版本啊哈哈哈哈哈") return Response('哈哈哈哈哈哈1111111111') # return HttpResponse("111111111111111111")

    2.全局配置加在分发之前

    setting 下urls

    from
    django.conf.urls import url,include from django.contrib import admin urlpatterns = [ url('admin/', admin.site.urls), url(r'^api/(?P<version>w+)/', include('myapp.urls')), ]
    myapp下urls
    from
    django.conf.urls import url,include from myapp.viwes import show urlpatterns = [ url(r'^home/$', show.HomeViwes.as_view()), ]
  • 相关阅读:
    c# 4.0新功能--隐式类型
    常用的sql语句记录
    算法学习-回文数判断
    算法学习-两数之和
    RSA加密(前端js)和MD5加密(后台)同时使用实例
    layer父页获取弹出层输入框里面的值
    关于checkbox的全选和反选实例
    jQuery实用小技巧-获取选中的的下拉框和返回头部滑动动画
    jQuery实用小技巧--输入框文字获取和失去焦点
    得到网站下的文件虚拟路径的方法
  • 原文地址:https://www.cnblogs.com/lovershowtime/p/11681842.html
Copyright © 2011-2022 走看看