十二.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项目下urlsfrom 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下urlsfrom django.conf.urls import url,include
from myapp.viwes import show
urlpatterns = [
    url(r‘^home/$‘, show.HomeViwes.as_view()),

]

原文地址:https://www.cnblogs.com/lovershowtime/p/11681842.html

时间: 2024-10-08 03:24:15

十二.Django---framework框架 版本设置的相关文章

十二.Django---restful framework框架 restful 规范

一 .restful 规范 Django REST框架是一个功能强大且灵活的工具包,用于构建Web API. Django Rest Framework(DRF)为我们的Django Talk项目创建RESTFul API ,这是一个用于快速构建基于Django模型的RESTful API的应用程序. 一个能快速为我们提供API接口,方便我们编程的框架.API是后端编程人员写的,为了让前端拿数据的一个接口,通常就是以url的形式存在 原文地址:https://www.cnblogs.com/lo

visual studio如何修改c++项目的.net framework框架版本

一. 修改项目文件 在 Visual Studio 的“解决方案资源管理器”中,打开项目的快捷菜单,然后选择“卸载项目”. 这将为你的项目卸载项目文件 (.vcxproj). 在菜单栏上,依次选择“文件”.“打开”.“文件”. 在“打开文件”对话框中,导航到项目文件夹,然后打开项目文件 (.vcxproj). 在项目文件中,找到目标 Framework 版本的条目. 例如,如果你的项目设计为使用 .NET Framework 4.5, <PropertyGroup Label="Globa

十二、EnterpriseFrameWork框架核心类库之与EntLib结合

从本章开始对框架的讲叙开始进入核心类库的讲解,前面都是对框架外在功能讲解,让人有个整体的概念,知道包含哪些功能与对系统开发有什么帮助.以后多章都是讲解核心类库的,讲解的方式基本按照代码的目录结构,这样阅读代码的时候也可以针对性看:还有就是为了更好理解文章中的内容把目前还不够完善的源代码发布,这个版本Winform部分基本可以直接运行,而Web部分与WCF部分的控制器代码没有完成,所以暂时还运行不起来,不过这并不影响学习核心类库,再就是尽快在下个版本发布一个完整版本给大家: EnterpriseF

Struts2(十二)使用验证框架验证数据较验

一.数据验证 1.1.为什么要进行数据验证 对数据的合法性进行检查,只允许合法的数据进入应用程序 1.2.在哪里实现数据验证 客户端验证: 数据提交前在客户端验证 可使用JavaScript或者JQuery实现 特点:减少客户等待时间,减小服务器压力 服务器端验证: 在数据提交后服务器端验证 特点:防止“绕过”客户端验证提交非法数据 可以在服务器端处理数据前确保数据的合法性 1.3.Struts2有两种方式实现服务器端数据验证 使用ActionSupport编码实现验证 使用验证框架实现验证 二

【十二】注入框架RoboGuice使用:(Your First Injected ContentProvider)

上一篇我们简单的介绍了一下RoboGuice的使用([十一]注入框架RoboGuice使用:(Your First Injection into a Custom View class)),今天我们来看下内容提供者(ContentProvider)的注入. 和Robo*Activities一样,RoboContentProviders通过RoboGuice也能自动获得注入,为了简便我们可以注入 authority URI,这时我们需要定义下面自己的module: public class Con

十二、CI框架之数据库查询

一.在database文件中写明数据库相关信息 二.我们数据库中的表如图所示 三.在CI中查询数据库内容 四.在浏览器输出 原文地址:https://www.cnblogs.com/tianpan2019/p/11141224.html

十二 .Django 一对多表ForeighKey(ORM)

一 . 一对多表ForeighKey(ORM) 1.创建ORM表 https://www.cnblogs.com/dangrui0725/p/9615641.html 一对多:子表从母表中选出一条数据一一对应,但母表的这条数据还可以被其他子表数据选择 共同点是在admin中添加数据的话,都会出现一个select选框,但只能单选,因为不论一对一还是一对多,自己都是“一” class Colors(models.Model): colors=models.CharField(max_length=1

【十四】注入框架RoboGuice使用总结

在我们平时开发Android项目的时候例如经常需要使用各种View控件,然后进行声明,findViewById,并且进行强转.每次都要写这样的代码就显得非常繁琐,并且容易出错哦.那么针对这种情况且不限定于以上的这类情况,Dependency injection 可以大大降低了类之间的依赖性,可以通过annotation (Java)描述类之间的依赖性,避免了直接调用类似的构造函数或是使用Factory来参加所需的类,从而降低类或模块之间的耦合性,以提高代码重用并增强代码的可维护性.Google

Python开发【第二十二篇】:Web框架之Django【进阶】

Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 新随笔 联系 订阅 管理 随笔-124  文章-127  评论-205 Python之路[第十七篇]:Django[进阶篇 ] Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻