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

从入门到精通Django REST Framework-(六)

与 Mixin 类结合,快速实现标准化操作。支持自定义扩展(如 @action 装饰器)。二. 为什么要使用视图集?优势:代码复用:无需为每个动作(列表、详情、创建等)单独写视图类。...DRF 的路由器(如 DefaultRouter 和 SimpleRouter)通过以下机制自动生成 URL:视图集的标准化方法undefined视图集(如 ModelViewSet)定义了标准化的方法...undefined路由器内部预定义了 HTTP 方法 与 视图集方法 的映射关系,例如:# SimpleRouter 的默认路由规则routes = [ # 列表路由(不带 {pk}) Route...自动检测视图集支持的方法undefined当调用 router.register() 注册视图集时,路由器会检查视图集是否实现了特定方法:如果视图集包含 list 方法 → 生成列表路由(GET /users...视图集中 @action 装饰器的使用@action 是 DRF 中用于在视图集(ViewSet)中定义自定义动作的核心装饰器,可以将任意方法暴露为 API 端点。下面通过更多场景详细说明其用法。

7910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    8.寻光集后台管理系统-用户管理(增删改查)

    在完成了登录和注册视图之后,需求中还需要管理员可以管理用户列表,所以就需要完成基础的增删改查操作 权限 在注册和登录操作中,我们的API对谁可以编辑或删除项目没有任何限制。...= [IsAuthenticated] 或者使用基于装饰器@api_view的函数视图 from rest_framework.decorators import api_view, permission_classes...实战 进行增删改查操作起码需要用户是已完成登录的 from rest_framework.permissions import IsAuthenticated permission_classes =...REST framework已经实现了分页api。它支持: 将分页的链接作为响应内容的一部分,这是默认的方案。 响应头中包含分页链接,如Content-Range或Link。...注意只有在使用通用视图或视图集时,分页才会自动执行。如果你使用一个常规的APIView,你需要自己调用分页API来确保你返回一个分页的响应。

    1.8K30

    DRF框架学习(四)

    DRF框架学习(四) 1.视图集对象的action属性 作用: 获取现在要执行的是哪一种操作。 self.action:是字符串类型,目的是获取所有执行的操作。...使用场景: 重写 get_serializer_class和get_queryset,根据不同的操作返回不同的序列化器类和不同的查询集。...== 'latest': # 返回latest操作对应的序列化器类 else: # 返回其他操作对应的序列化器类 def get_queryset(self)...返回latest操作所使用的查询集 else: # 返回其他操作所使用的查询集 2.路由Router(urls文件中使用) 作用:(重点) 配合视图集进行使用,动态生成视图集中处理函数的...lookup_value_regex = '\d+' 2.1视图集额外处理方法url配置项的生成 需要给对应的方法添加action装饰器。

    2.8K40

    构建强大的API-Django中的REST框架探究与实践

    在Web开发中,RESTful API是一种遵循REST原则的API设计风格,它使用HTTP协议进行通信,通过GET、POST、PUT、DELETE等HTTP方法来实现对资源的操作。...在views.py中定义了一个视图集,使用了ModelViewSet,它提供了默认的CRUD操作。在urls.py中配置了路由,将API端点映射到对应的视图集上。6....Django REST框架通过@api_view装饰器和async关键字支持异步视图。...数据序列化通过使用序列化器,我们可以将复杂的数据结构转换为简单的JSON格式,并进行序列化和反序列化操作。...缓存配置我们可以在视图函数或视图集中使用@method_decorator装饰器来配置缓存:from django.utils.decorators import method_decoratorfrom

    40820

    Django REST Framework-视图的装饰器(一)

    Django REST Framework中的视图装饰器提供了一种方便的方式来自定义视图的行为。视图装饰器是一个函数,它接受一个视图函数作为参数,并返回修改后的视图函数。...return Response(data)在这个示例中,我们使用@api_view装饰器将my_view函数转换为API视图。我们还指定了API视图支持的HTTP方法(GET)。...@permission_classes@permission_classes是Django REST Framework中的另一个常用的视图装饰器。它允许您指定在请求被处理之前必须满足的权限要求。...下面是一个使用@permission_classes装饰器的示例:from rest_framework.decorators import api_view, permission_classesfrom...return Response(data)在这个示例中,我们使用@permission_classes装饰器将my_view函数转换为API视图,并指定了需要IsAuthenticated权限。

    50310

    90%的程序员都忽略了它,但 Makefile 却能让你节省一半时间

    其实啊,这种问题很常见,很多程序员都和你一样,被这些琐碎的操作绑住了手脚。但你知道吗?有一个工具可以帮你大大简化这些流程,它叫——Makefile。听过吧?可你真的有在用吗?什么是 Makefile?...你可能会想:“我平时不也能手动执行这些操作吗,为什么非得用 Makefile 呢?” 其实原因很简单,你总不希望把时间浪费在那些重复无意义的操作上吧?...这样,当你需要修改编译器或者参数时,只需改动一处就行。...加入注释,让未来的你少走弯路虽然 Makefile 看起来简单,但项目复杂了之后,任务多了,也容易忘记当初的逻辑。所以,一定要在关键任务上加上注释,让未来的自己或者其他同事能快速理解你当初的设计。...结语别再忽略 Makefile 了,尤其是当你发现自己频繁执行一些重复命令的时候。它简单、轻量、高效,却能给你带来意想不到的工作提升。

    17210

    【愚公系列】2022年04月 Python教学课程 72-DRF框架之认证和权限

    文章目录 一、认证 1.全局认证 2.视图认证 3.装饰器认证 二、权限 1.全局权限 2.视图权限 3.装饰器权限 4.组合权限 一、认证 身份验证是将传入请求与一组标识凭据(如请求来自的用户或签名时使用的令牌...REST 框架提供了几种开箱即用的身份验证方案,还允许您实现自定义方案。 身份验证始终在视图的开头、权限和限制检查发生之前以及允许任何其他代码继续之前运行。 该属性通常设置为包的类的实例。...'auth': str(request.auth), # None } return Response(content) 3.装饰器认证 @api_view(['GET...content = { 'status': 'request was permitted' } return Response(content) 3.装饰器权限...,您是在告诉视图忽略 settings.py 文件中设置的默认列表。

    90530

    再见收费的Navicat,操作所有数据库就靠它了!

    官方下载地址:https://dbeaver.io/download/ 根据自己电脑的操作系统下载对应的安装包,完整安装后,第一步要做的是配置 Maven 镜像,否则在后续下载数据库驱动的时候会非常的慢...如果你前面按照我说的配置了阿里云的 Maven 镜像,程序就不一样了,点了「测试链接」,瞬间会弹出「连接已成功」的提示框。 链接成功后,就可以看到数据库中的表啊、视图啊、索引啊等等。...四、管理表 数据库连接成功后,最重要的还是操作表。 01、查看表 选择一张表,双击后就可以看到表的属性了,可以查看表的列、约束(主键)、外键、索引等等信息。...最后点击保存,会弹出一个建表语句的预览框,点击「执行」即可完成表的创建。 五、执行 SQL 右键数据库表,选择右键菜单中的「SQL 编辑器」可以打开 SQL 编辑面板。...然后编辑 SQL 语句,点击运行的小图标就可以查询数据了。这个过程会有语法提示,非常 nice。 DBeaver 有一个很亮眼的操作就是,可以直接选中一条结果集,然后右键生成 SQL。

    1.8K10

    Django REST Framework-函数视图

    在这个例子中,我们使用@api_view装饰器来将一个普通的Django视图函数转换为API视图。我们将请求方法限制为GET,并返回一个包含消息的响应。...@api_view装饰器是一个很好的起点,因为它允许您在不使用类视图的情况下使用DRF的其余功能。您可以使用DRF的其他装饰器来添加其他功能,如认证、权限检查、缓存等。...以下是一些常用的DRF装饰器:@authentication_classes(classes): 添加认证类。classes是认证类的列表,按优先级排序。...return Response(data)在这个例子中,我们定义了一个名为secret_data的函数视图,并使用@api_view装饰器将其转换为API视图。...我们使用@authentication_classes装饰器将TokenAuthentication添加到视图中,并使用@permission_classes装饰器将IsAuthenticated添加到视图中

    62731

    烦透了的Python装饰器,终于用这12点理清楚了

    因为装饰器很复杂,这篇文章将会很长(自己都说很长,还敢这么多废话blablabla...前戏就不继续翻译直接省略了) 1. 函数 在python中,函数通过def关键字、函数名和可选的参数列表定义。...们定义了一个函数outer,它只有一个some_func的参数,在他里面我们定义了一个嵌套的函数inner。inner会打印一串字符串,然后调用some_func,在#1处得到它的返回值。...使用 @ 标识符将装饰器应用到函数 Python2.4支持使用标识符@将装饰器应用在函数上,只需要在函数的定义前加上@和装饰器的名称。...*args and **kwargs 我们已经完成了一个有用的装饰器,但是由于硬编码的原因它只能应用在一类具体的方法上,这类方法接收两个参数,传递给闭包捕获的函数。...更通用的装饰器 有了这招新的技能,我们随随便便就可以写一个能够记录下传递给函数参数的装饰器了。先来个简单地把日志输出到界面的例子: >>> def logger(func):...

    93250

    DjangoRestFramework的Api如何鉴权

    1、前言 上篇文章,我们初步认识了DjangoRestFramework的安装和使用,已经具备快速开发Restful风格的接口了。...如上,需要鉴权的视图类(函数)继承了APIView,类似上节的PersonViewSet集成了ModelViewSet一样,我们使用DjangoRestFramework都是集成了它已有的功能;我们在视图类中指定了.... import views from rest_framework.routers import DefaultRouter ​ router = DefaultRouter()  # 可以处理视图的路由器...router.register('person', views.PersonViewSet)  # 向路由器中注册视图集 ​ app_name='app0' urlpatterns = [    path...2.2、全局配置 当我们想要对全局的接口都进行认证控制时,我们对每个接口都进行配置,显然不够合理。此时我们只需要对应用进行全局配置即可。 接口中的permission_classes就不需要了。

    1.7K20

    python教程

    请求对象 REST框架介绍了一个请求(Request)对象,它扩展了常规的HttpResquest,并且,提供更灵活的请求解析。...用这些标识符代替纯数字的HTTP状态码是很好的注意。 装饰API视图 REST框架提供两个装饰器,你可以用它们来写API视图。 1 @api_view装饰器用在基于视图的方法上。...这里装饰器也提供了一些行为,例如在合适的时候返回405 Method Not Allowed响应,例如处理任何在访问错误输入的request.data时出现的解析错误(ParseError)异常。...目前,一个ViewSet类只绑定一个方法的集合,当它初始化一个视图的集合时,一般使用为你处理复杂的URL定义的Router类。 使用视图集(ViewSets)重构 让我们来用视图集重写当前视图。...如果你想改变url本来创建的方式,你可以将url_path包含在装饰器关键参数中。 明确绑定视图集到URL 我们定义URLConf的时候,处理方法只绑定了动作。

    5.1K10
    领券