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

建设银行etc官方网站网站仿静态

建设银行etc官方网站,网站仿静态,企业seo排名哪家好,wordpress系统api接口在restful规范中,后端的API中需要体现版本。如果项目比较大,需要些很多的视图类,在每一个类中都写一遍会比较麻烦,所以drf中也支持了全局配置。在每个版本处理的类中还定义了reverse方法,他是用来反向生成URL并携带相关…

在restful规范中,后端的API中需要体现版本。如果项目比较大,需要些很多的视图类,在每一个类中都写一遍会比较麻烦,所以drf中也支持了全局配置。在每个版本处理的类中还定义了`reverse`方法,他是用来反向生成URL并携带相关的的版本信息用的。

REST_FRAMEWORK = {"DEFAULT_VERSIONING_CLASS": "rest_framework.versioning.QueryParameterVersioning",  # 处理版本的类的路径"VERSION_PARAM": "version",  # URL参数传参时的key,例如:xxxx?version=v1"ALLOWED_VERSIONS": ["v1", "v2", "v3"],  # 限制支持的版本,None表示无限制"DEFAULT_VERSION": "v1",  # 默认版本
}

一、基于GET传递参数

1、settings.py

REST_FRAMEWORK={"UNAUTHENTICATED_USER": None,"VERSION_PARAM":"version",  # 决定url中版本的参数值;不设置默认也是这个值,可以通过修改这里修改,例如改为"v";"DEFAULT_VERSION":"v1", # 默认版本"ALLOWED_VERSIONS":["v1","v2"] #支持的版本范围
}

2、urls.py

urlpatterns = [# path('admin/', admin.site.urls),path('home/', views.HomeView.as_view(),name="hh"),
]

3、views.py

from rest_framework.versioning import   QueryParameterVersioningclass HomeView(APIView):# 传递过程中可以携带版本信息# http://127.0.0.1:8000/home/?version=v1 ,会自动读出版本赋值给request.versionversioning_class = QueryParameterVersioningdef get(self,request):print(request.version)print(request.versioning_scheme)url = request.versioning_scheme.reverse("hh",request=request)print("反向生产URL:",url)return Response("...")

二、基于路由传递参数

1、urls.py

urlpatterns = [# 下面这两种写法都可以,一种是基于re_path的路由# path('api/<str:version>/home/', views.HomeView.as_view(), name="hh"),re_path(r'^api/(?P<version>\w+)/home/',views.HomeView.as_view(),name="hh"),]

2、settings.py

REST_FRAMEWORK={"UNAUTHENTICATED_USER": None,"VERSION_PARAM":"version",  # 决定url中版本的参数值;不设置默认也是这个值,可以通过修改这里,修改;"DEFAULT_VERSION":"v1", # 默认版本"ALLOWED_VERSIONS":["v1","v2"] #支持的版本范围
}

3、views.py

from rest_framework.versioning import   URLPathVersioningclass HomeView(APIView):# 传递过程中可以携带版本信息# http://127.0.0.1:8000/home/?version=v1 ,会自动读出版本赋值给request.versionversioning_class = URLPathVersioningdef get(self,request,*args,**kwargs):print(request.version)print(request.versioning_scheme)url = request.versioning_scheme.reverse("hh",request=request)print("反向生产URL:",url)return Response("...")

三、基于请求头传递参数

1、urls.py

urlpatterns = [# 基于请求头传递参数path('api/home/', views.HomeView.as_view(), name="hh"),
]

2、views.py 

from rest_framework.versioning import   QueryParameterVersioning,URLPathVersioning,AcceptHeaderVersioningclass HomeView(APIView):versioning_class = AcceptHeaderVersioningdef get(self,request,*args,**kwargs):print(request.version)print(request.versioning_scheme)url = request.versioning_scheme.reverse("hh",request=request)print("反向生产URL:",url)return Response("...")

四、在实际项目中,第二种通过URL传递版本号的方式还是比较常用,在使用的时候,可以通过全局配置,在views中就不需要在引入和单独设置了,可以直接使用,案例如下: 

1、settings.py

REST_FRAMEWORK={# 版本号传递全局设置"VERSION_PARAM":"version",  # 决定url中版本的参数值;不设置默认也是这个值,可以通过修改这里,修改;"DEFAULT_VERSION":"v1", # 默认版本"ALLOWED_VERSIONS":["v1","v2"], #支 持的版本范围"DEFAULT_VERSIONING_CLASS":"rest_framework.versioning.URLPathVersioning",
}

2、urls.py

  # 基于URL传递参数path('api/<str:version>/home/', views.HomeView.as_view(), name="hh"),

3、views.py

from rest_framework.views import APIView
from rest_framework.response import Responseclass HomeView(APIView):def get(self,request,*args,**kwargs):print(request.version)print(request.versioning_scheme)url = request.versioning_scheme.reverse("hh",request=request)print("反向生产URL:",url)return Response("...")

http://www.hyszgw.com/news/54615.html

相关文章:

  • 江苏城乡与住房建设部网站玄武区网站建设
  • 做推广网站桂林做网站电话号码
  • 电子商务网站建设与维护 教材做一个内容网站多少钱
  • 值得浏览的外国网站做专利费减是哪个网站
  • 用网站的源代码怎么做网站WordPress文章文字改颜色
  • 网站h1标签用在哪里电子商务网站建设与管理课后习题
  • 茶网站建设宗旨国内优秀app界面设计案例
  • 外贸网站建设网站小型人力资源公司注册
  • 面包屑 wordpress东莞优化公司首选3火星
  • 中国建设银行门户网站企业用html5做的商务网站
  • 宜宾网站建设公司佛山建网站的公司
  • 江镇做包子网站中山网站开发费用
  • 网站打不开 别人能打开筹备网站建设
  • 青州网站设计公司wordpress 性能问题
  • 济宁华园建设有限公司网站python语言基本语句
  • 贵州省建设执业资格教育促进会网站笔记wordpress
  • 石家庄网站建设方案优化投诉网站建设
  • aspx网站搭建教程wordpress 100%
  • seo网站代码做外贸单网上都做的那些网站
  • 有哪个网站可以学做面条开面馆lnmp wordpress 502
  • 广西省河池建设局网站响应式网站模板的特点
  • 网站对联广告图片百度搜索竞价推广
  • 钟表网站开发背景文章温州网蚁网络科技有限公司
  • 编程教程网站优化资源
  • 厦门手机网站公司建立网站费用
  • 济南市历下区建设局官方网站网站建设与网页设计开题报告
  • 一个公司做2个产品网站怎么做的海西高端网站建设价格
  • 少部分网站ie打不开这些网站域名ping不通wordpress免费主题破解版
  • 怎么防止网站攻击网络营销推广的新趋势
  • 网站的栏目设计怎么做内蒙古住房和城乡建设部网站