首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

rest框架@action kwargs是否取代了类值?

在云计算领域中,REST框架是一种用于构建Web服务的架构风格。它基于HTTP协议,通过使用不同的HTTP方法(如GET、POST、PUT、DELETE等)来实现对资源的操作。@action和kwargs是与REST框架相关的概念,但它们并没有取代类值的作用。

@action是Django REST框架中的装饰器,用于在视图集中添加自定义的操作。通过使用@action装饰器,可以为视图集添加额外的自定义动作,这些动作可以不仅仅是标准的CRUD操作。@action装饰器可以接受多个参数,包括methods、detail、url_path等,用于定义自定义动作的请求方法、是否作用于单个资源对象、自定义动作的URL路径等。

kwargs是Python中的一个特殊参数,用于接收不定长度的关键字参数。在REST框架中,kwargs通常用于接收额外的参数,这些参数可以在视图函数中进行处理。通过使用kwargs,可以灵活地传递不同的参数,以满足不同的业务需求。

总结起来,@action和kwargs并没有取代类值的作用,它们是在REST框架中用于实现自定义操作和接收额外参数的工具。它们可以帮助开发人员更好地构建和扩展RESTful API。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

测试开发进阶(二十九)

,不能合并 有相同的get方法 两个视图所对应的url地址不一致 再次优化 优化思路:使用动作来触发,而不是请求方法 from rest_framework import viewsets viewsets...不再支持 get/post/put/delete等请求方法,而只支持action动作 但是 ViewSet中没有提供 get_object(), get_serializer等方法 继承 viewsets.GenericViewSet...CreateAPIView(合并拓展) 视图集 action和请求方法的映射 ViewSet GenericViewSet CreateViewSet 路由 from rest_framework import...自定义action from rest_framework.decorators import action def action(methods=None, detail=None, url_path...参数用于指定该动作支持的请求方法,默认为get detail用于指定该动作要处理的是否为详情资源对象「url是否需要传递pk」 在 url.py中添加 path('project/names/', views.ProjectsViewSet.as_view

63510

第 12 篇:加缓存为接口提速

配置缓存 django 为我们提供一套开箱即用的缓存框架,缓存框架对缓存的操作做了抽象,提供统一的读写缓存的接口。...drf-extensions Cache django 的缓存框架比较底层,drf-extensions 在 django 缓存框架的基础上,针对 django-rest-framework 封装了更多缓存相关的辅助函数和...cache_response 装饰器 这个装饰器用来装饰 django-rest-framework 的视图(单个视图函数、视图集中的 action 等),被装饰的视图将具备缓存功能。....retrieve(request, *args, **kwargs) 这里我们分别装饰 list(获取文章列表的 action)和 retrieve(获取单篇文章),timeout 参数用于指定缓存失效时间...如果任何一个 KeyBit 提供的发生了变化,生成的缓存 key 就会不同,查询到的缓存结果也就不一样,这个方式为我们提供一种有效的缓存失效机制。

1.1K40

路由是如何映射的?

路由的配置上篇我们提到了一点自动配置,对于继承视图集ViewSet就可以自动生成路由,当然也可以选择手动版自己配,可以使用action装饰器来指定方法等操作,屁话不多说如下: REST framework...提供两个router SimpleRouter DefaultRouter 路由组件使用,如果视图继承ViewSetMixin及其子类,那么路由写法可以改变,而且视图中的方法也可以自定制,不一定是...)# 跟之前一样 继承ModelViewSet,路由写法 ModelViewSet继承五个扩展+GenericViewSet,提供相应的接口方法增删改查 from rest_framework.viewsets...装饰器 只要是继承ViewSetMixin视图或其子类,都可以加action装饰器 导入:rest_framework.decorators.action 参数: methods:请求方法,列表的形式写...from rest_framework.decorators import action class TestView(ViewSetMixin,APIView): @action(methods

69010

DRF框架学习(三)

功能: 1.视图中的request对象不再是Django中 HttpRequest的对象,而是由DRF框架封装成的 Request的对象。...为了方便设置状态码,REST framewrok在 rest_framework.status模块中提供常用状态码常量,我们直接使用即可。...其他功能: a)过滤 b)分页 补充知识点: 查询的时候我们想不根据主键pk查询,而是根据我们的需求查,那么可以根据修改 lookup_field(改为我们要查询的字段的名称)的来解决需求。...): """获取指定的对象数据的通用过程""" 自己抽取代码实现扩展的步骤: 1)先将通用的代码抽取出来。...2)创建一个扩展,将抽取的代码进行封装。 3)在原视图函数中进行调用。 1.3.1扩展5个详解 DRF框架提供5个扩展,封装了通用增删改查的流程。

1.1K20

Django rest-framework视图家族

,一堆mixins工具与GenericAPIView视图基组合 视图集 viewsets:可自定义映射关系 from rest_framework import views,generics,mixins...,viewsets 视图 GenericAPIView 两大视图:APIView、GenericAPIView APIView from rest_framework.views import APIView...总结:GenericAPIView就是在APIView基础上额外提供三个方法和三个类属性,如果不配合视图工具,则体现不出来优势所在 使用它的好处:视图中的增删改查逻辑其实大差不差,但操作的资源不一致...mixins 在GenericAPIView的基础上提供五个,六个方法六大接口(单查、群查、单增、单整体改、单局部改、单删) 使用的时候需要配合继承GenericAPIView 五大工具 RetrieveModelMixin...以上的步骤我们继承视图集的ModelViewSet实现六大接口,但是从实际开发角度分析有很多不合理的点: 没有群增,群整体改,群局部改,群删四个接口 删除只做字段的修改 响应的结果只有数据,没有数据状态码和状态信息

73920

Django REST framework+Vue 打造生鲜超市(四)

framework和简单介绍django的序列化用法,下面就是重点讲解django rest framework 5.3.APIview方式实现商品列表页 (1)安装 pip install coreapi...(mixins.ListModelMixin,GenericAPIView)        继承这两个 写好了get方法 ?  ...return request def reverse_action(self, url_name, *args, **kwargs): """ Reverse...还有其它几个mixin(增删改查局部),这些功能都是mixin做的  我们一般都是用viewsets ViewSet与View其实几乎是相同的,但提供的是read或update这些操作,而不是get...同时,ViewSet为我们提供默认的URL结构, 使得我们能更专注于API本身。  Router提供一种简单,快速,集成的方式来定义一系列的urls

4.8K90

DRF-认证权限频率

DRF提供认证的方法 我们知道在APIView执行的过程中,在dispatch方法中走了三大认证self.initial(request, *args, **kwargs) def initial...self.check_throttles(request) # 频率 认证 需求 我们通过登录接口,来模拟认证登录,登录成功返回json字符串,并且携带随机字符串(uuid模拟生成token),通过token随机字符串来判断用户是否登录...import Response from rest_framework.viewsets import ViewSet from rest_framework.decorators import action...,就是当前登录用户对象 返回的第二个(token),给request.auth,就是token串 局部禁用和全局配置使用的时候要注意,全局如果认证的时候是每个视图函数都认证,就比如登录视图认证登录,那么就死循环...import action from rest_framework.response import Response from rest_framework.viewsets import ViewSet

57810

五、商品列表页

framework和简单介绍django的序列化用法,下面就是重点讲解django rest framework 5.3.APIview方式实现商品列表页 (1)安装 pip install coreapi...(mixins.ListModelMixin,GenericAPIView)        继承这两个 写好了get方法  我们要获取商品列表页的信息,只要写三行代码就可以 class GoodsListView...return request def reverse_action(self, url_name, *args, **kwargs): """ Reverse...还有其它几个mixin(增删改查局部),这些功能都是mixin做的  我们一般都是用viewsets ViewSet与View其实几乎是相同的,但提供的是read或update这些操作,而不是get...同时,ViewSet为我们提供默认的URL结构, 使得我们能更专注于API本身。  Router提供一种简单,快速,集成的方式来定义一系列的urls

4.7K00

drf的接口文档生成与管理

post: 新建主机. """ 对于视图集ViewSet,仍在视图的文档字符串中分开定义,但是应使用action对应的名称进行区分 class HostInfoViewSet(mixins.ListModelMixin...help_text': '环境名称' } ... } 3、Swagger生成接口文档 3.1 Swagger介绍 Swagger是一个规范和完整的框架...OPERATIONS_SORTER': 'alpha', # 在线模式验证器的URL 修改为指向本地安装,或设置None为禁用 'VALIDATOR_URL': None, } 3.4 配置相关路由 由于上面开启访问...3.6 说明 Django REST Swagger从19年开始就已弃用不再维护,作者在官方网站上说明了更推荐使用drf-yasg 可以阅读https://github.com/marcgibbons..., 如果缺省, 则根据视图所在的位置进行推导 patterns: 自定义的urlpatterns, 该参数直接透传至SchemaGenerator urlconf: 描述从哪个文件获取路由配置, 缺省

4.6K10

Django Rest Framework

import action from rest_framework.response import Response # from django.contrib.auth.models import...',namespace='rest_framework')), ] image.png 1、基本视图-基础视图(APIView) 不同于django常规的view,优点: * 提供更好用的request...finalize_response(self, request, response, *args, **kwargs): 确保任何响应处理程序方法返回的对象将被呈现到正确的内容类型 2、基本视图-...REST框架提供的通用视图允许快速构建API观点紧密地映射到数据库模型,如果通用视图不适合的需要API, 可以使用常规APIView,或重用mixin和基使用的通用视图来组成自己的组可重用通用视图。...默认与settings中设置的DEFAULT_PAGINATION_CLASS 相同,设置分页数过滤器属性: 'rest_framework.pagination.PageNumberPagination

2.2K60

用 Django REST framework 来实现一次性验证码(OTP)

OTP 避免了一些静态密码认证相关系的缺点,不容易受到重放攻击,比如常见的注册场景,用户的邮箱或短信会收到一条一次性的激活链接,或者收到一次随机的验证码(只能使用一次),从而验证邮箱或手机号的有效性。...2、发送前验证,是否上次发送的验证码在 1 分钟之内?是否邮箱已经注册?,如果是,拒绝发送,并提示用户,如果否,发送验证码。 3、验证,是否是 5 分钟之内的验证码,是否正确,如果是,则放行。...framework 框架的 GenericViewSet 和 CreateModelMixin 即可实现 view ,代码都有详细的注释,你很容易就看明白: from rest_framework.response...""" serializer_class = UserSerializer def get_serializer_class(self): if self.action...最后的话 一次性验证码(OTP)的逻辑简单,需要思考的是如何在 DRF 的框架中填空,填在哪里?

1.7K20

DjangoRestFramework,序列化组件、视图组件

,验证是否是有效email地址。...max_length:文件名最大长度; allow_empty_file:是否允许为空文件; 7.ImageField 对应models.ImageField,代表一个图片,负责校验图片格式是否正确。...,能不能去重呢,当然可以,一个搞定,看写法 #####################再次封装的Author表操作########################## from rest_framework.viewsets...注意1: #通过self在继承之间调用变量,现在是我们通过Dog继承的Animal中调用了Running中的变量,也就是说如果你在某个中找不到对应的属性,有可能在其他里面放着 class...def f1(action,**kwargs): print(action) print(kwargs) f1({'name':'chao'}) #结果:{'name': 'chao

2.6K20

第 9 篇:实现分类、标签、归档日期接口

回顾一下我们之前在使用视图集 viewset 时提到过 action(动作)的概念,django-rest-framework 预定义几个标准的动作,分别为 list 获取资源列表,retrieve...获取单个资源、update 和 partial_update 更新资源、destroy 删除资源,这些 action 具体的实现方法,分别由 mixins 模块中的混入提供。...例如 用视图实现首页 API 中我们介绍过 mixins.ListModelMixin,这个混入提供 list 动作对应的标准实现,即 list 方法。...action 装饰器通常用于在视图集中添加额外的接口实现。例如这里我们已有 PostViewSet 视图集,标准的 list 实现获取文章资源列表的逻辑。...当然,我们还可以在 action 中设置所有 ViewSet 所支持的类属性,例如 serializer_class、pagination_class、permission_classes 等,用于覆盖视图中设置的属性

2.6K30
领券