首页
学习
活动
专区
圈层
工具
发布

DRF视图详解:从基础视图到通用视图实践指南

一、基础视图 (APIView)APIView 是 DRF 中所有视图的基类,继承自 Django 的 View,并添加了 DRF 特有的功能(如认证、权限、限流等)。...()),]使用通用视图,实现完整的 CRUD 功能,大大减少了重复代码。...:新增打开浏览器登录访问:http://127.0.0.1:8000/api/books/1get:查询单个对象put:修改delete:删除三、通用视图的高级用法动态查询集通过重写 get_queryset...类继承关系GenericAPIView 是 DRF 通用视图体系的基石,其继承关系如下作为 APIView 的子类,GenericAPIView 保留了请求处理、认证、权限、限流等基础功能GenericAPIView...lookup_url_kwargURL 中用于对象查找的关键字参数,默认与 lookup_field 相同。需与 URL 配置中的参数名保持一致。

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

    Django REST Framework-常用的权限类型

    Django REST Framework是一个用于构建Web API的强大框架。其中一个重要的特性是提供了多种权限类型来控制用户对API端点的访问。...常用的权限类型IsAuthenticated:只允许已经验证身份的用户访问API端点。IsAdminUser:只允许管理员用户访问API端点。...DjangoModelPermissions:基于Django模型的权限控制。允许用户在执行特定操作之前检查模型的权限。...DjangoModelPermissionsOrAnonReadOnly:如果用户未经身份验证,则允许读取API端点。如果用户已经验证身份,则检查该用户是否具有执行特定操作的模型权限。...DjangoObjectPermissionsOrAnonReadOnly:如果用户未经身份验证,则允许读取API端点。如果用户已经验证身份,则检查该用户是否具有执行特定操作的模型实例权限。

    2.1K20

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

    在Web开发中,RESTful API是一种遵循REST原则的API设计风格,它使用HTTP协议进行通信,通过GET、POST、PUT、DELETE等HTTP方法来实现对资源的操作。...在views.py中定义了一个视图集,使用了ModelViewSet,它提供了默认的CRUD操作。在urls.py中配置了路由,将API端点映射到对应的视图集上。6....下面是一些可能的改进和扩展:自定义API端点在路由配置中,我们使用了DefaultRouter提供的默认路由,但有时候我们可能需要自定义API端点。...例如,我们可以编写基于APITestCase的测试类来测试API的各种端点和功能。另外,为了方便使用和理解API,我们还可以使用Django REST框架提供的文档工具来自动生成API文档。...首先,我们学习了如何使用Django REST框架来创建简单的API端点,包括定义模型、序列化器、视图集以及路由配置等。

    2.6K20

    Django REST Framework-常用的类视图

    Django REST Framework是基于Django的一个用于构建Web API的框架。它提供了许多用于构建Web API的工具和实用程序,其中最常用的是类视图。...APIViewAPIView是Django REST Framework中最基本的类视图之一。它提供了一个通用的方式来处理HTTP请求,并返回一个HTTP响应。...GenericAPIViewGenericAPIView是一个更高级的类视图,它提供了许多有用的功能。它结合了APIView和Mixin类,以提供常见的API操作(例如获取,创建和更新)的默认实现。...与APIView不同,您不需要手动处理请求,并确定要返回的响应。相反,您可以使用内置的方法来处理常见API操作。...总结在Django REST Framework中,类视图是一种方便的方式来编写Web API视图,并带有许多有用的内置功能。

    1.2K30

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

    在完成了登录和注册视图之后,需求中还需要管理员可以管理用户列表,所以就需要完成基础的增删改查操作 权限 在注册和登录操作中,我们的API对谁可以编辑或删除项目没有任何限制。...注意只有在使用通用视图或视图集时,分页才会自动执行。如果你使用一个常规的APIView,你需要自己调用分页API来确保你返回一个分页的响应。...limit表示要返回的最大项数,与其他样式中的page_size相同。offset表示查询相对于完整的未分页项集的起始位置。...default_limit - 一个数字值,表示客户端在查询参数中未提供limit时所使用的值。默认值与PAGE_SIZE设置键相同。...:2800/#/template/list/crud 请求方式:GET 请求地址:http://localhost:2800/api/demo/list?

    2.5K30

    Django Rest Framework

    1) API策略属性 以下的API策略属性应用于APIView,控制视图的策略: renderer_classes: 渲染器类 parser_classes: 解释器类 authentication_classes...函数基础视图(@api_view()) 一种函数基础视图来装饰django的普通视图,我们同样可以使用request来接受请求和response响应。...REST框架提供的通用视图允许快速构建API观点紧密地映射到数据库模型,如果通用视图不适合的需要API, 可以使用常规APIView类,或重用mixin和基类使用的通用视图来组成自己的组可重用通用视图。...,默认与settings中设置的DEFAULT_PAGINATION_CLASS 值相同,设置分页数过滤器属性: 'rest_framework.pagination.PageNumberPagination...对象 UpdateModelMixin: 提供Update方法,更改一个模型对象 DestroyModelMixin:提供destroy方法,删除一个模型对象 4)Generic Generic通用视图类提供具体操作的通用视图类

    2.9K60

    DRF一级视图APIView

    APIView APIView是Django REST framework提供的所有视图的基类,继承自Django的View类。...使用方式: from rest_framework.views import APIView APIView与View的不同之处在于: 传入到视图方法中的是Django REST framework的Request...对象,而不是Django的HttpRequeset对象; 视图方法可以返回Django REST framework的Response对象,视图会为响应数据设置(render)符合前端要求的格式;(需要...不受csrf认证规则的限制,因为由as_view方法完成路由配置,返回配置函数是csrf_exempt(view)。 APIView与View的使用基本相同,像往常一样。...API策略装饰器 为了覆盖默认设置,REST framework 提供了一组额外的装饰器,可以添加到您的视图中。注意,这些必须在@api_view装饰器之后。

    1.1K10

    DRF系列总结二:脚手架搭建

    ,在Django基础工程的基础上,安装DRF并进行配置:比如统一接口返回格式、统一异常处理等,并在后面的文章中,不断完善出一套DRF脚手架,以降低后面的开发同学的趟坑成本。...,适用于与网站在相同的Session环境中运行的AJAX客户端;身份验证成功后,会得到以下凭据: - `request.user` 是一个 Django User 实例 - `request.auth`...对于需要对外提供Django模型的CRUD接口的项目来说,真是个好东西,简单配置一下,接口就都有了。...,通过阅读代码和文档,我们发现ModelViewSet的父类APIView中的finalize_response函数恰好是DRF定义的response统一处理的接口,于是我们可以重写ModelViewSet...中的urls.py] 注册完以后,我们就可以通过:/api/demo/开头的地址访问接口了 [demo urls] 三、总结   到这里,你可能已经发现,这个东西的配置成本还是有的。

    4.3K60

    DjangoRestFramework的Api如何鉴权

    但是在实际的生产过程中,我们通常需要根据业务需求对不同的接口进行权限的校验。 今天我们就来入门DjangoRestFramework的接口鉴权。...如上,需要鉴权的视图类(函数)继承了APIView,类似上节的PersonViewSet集成了ModelViewSet一样,我们使用DjangoRestFramework都是集成了它已有的功能;我们在视图类中指定了...dj0/urls.py 增加rest_framework的认证路由 from django.contrib import admin from django.urls import path,include...admin/', admin.site.urls),    path('app0/', include('app0.urls')),    path('',views.hi),    path('api-auth...,如果你想快速的开发出一个具备CRUD和权限认证功能的后端服务,那么DjangoRestFramework将会是你不二的选择。

    2K20

    2. DRF入门

    drf介绍 Django REST framework (简称:DRF)是一个强大而灵活的 Web API 工具。 遵循RESTFullAPI风格,功能完善,可快速开发API平台。.../1/ #对于指定数据进行更新,删除,查看操作 DRF序列化器 序列化与反序列化介绍 在日常开发中,会从别的API获取数据或者自己写API提供数据,数据格式一般都是采用JSON格式。...之前常用三种序列化方式: Django内置Serializers模块 Serializers是Django内置的一个序列化器,可直接将Python对象转为JSON格式,但不支持反序列化 from django.core...serializer.errors:获取反序列化器验证的错误信息 serializer.data:获取序列化器返回的数据 serializer.save():将验证通过的数据保存到数据库(ORM操作)...常用参数 通用参数 DRF序列化器:扩展验证规则 如果常用参数无法满足验证要求时,可通过钩子方法扩展验证规则。

    2.3K50

    第 4 篇:用类视图实现首页 API

    django-rest-framework 中最基本的类视图是 views.APIView,这个类可以看成是上一篇教程中用到的 api_view 装饰器的类版本。...除非需要深度定制视图函数的逻辑,一般情况下我们的视图不会直接继承这个类。 更为通用的类视图是 GenericAPIView,这个类继承自 APIView,对基类的功能做了拓展。...回顾一下此前讲的 RESTful 架构的基本概念,客户端使用 URL 访问资源,通过 HTTP 请求的动词表达对资源的操作。...django-rest-framework 针对各种类型的资源操作,提供了对应的通用类视图,这些通用类视图主要包括: CreateAPIView 用于创建资源的 POST 请求。...最后一步就是在 urls.py 中绑定接口,把原来绑定的函数视图改为现在的类视图: path('api/index/', views.IndexPostListAPIView.as_view()) 启动开发服务器

    95910

    教你 10 分钟构建一套 RESTful API 服务( 下 )

    和 Restless 依赖插件的增强使用场景的 但是,有些小伙伴希望我能写一下 Django 实现 RESTful API 的实现过程 因此本篇将介绍 Django 搭建 RESTful API 的流程...的扩展,增加了对快速构建 REST API 的支持 django-rest-swagger:Django 支持的Swagger UI,可以生成 API 接口文档 django-filter:配合 djangorestframework...为了简化过程,使用命令行连接本地 Mysql 数据库 ,并新建一个名为 rest 的数据库 然后,在项目的设置文件 settings.py 中,指定默认的数据库连接信息 # api/api/settings.py...实现 具体步骤如下: 第 1 步,编写模型,并映射数据库 新建一个类,继承自 django.db.models 中的 Model 对象,新增几个字段,指定数据类型和默认值 # api/restfulapi...,使用 rest_framework_swagger 中的 get_swagger_view() 函数,创建一个可视化的 API 界面 # api/api/urls.py from rest_framework_swagger.views

    2K40

    Django REST Framework-基于Oauth2的身份验证(二)

    要获取授权码,您需要重定向用户到授权服务器的授权端点。在Django REST Framework中,您可以使用AuthorizationView视图来处理授权端点。...第二步:获取访问令牌在OAuth2身份验证流程的第二步中,我们需要使用授权码获取访问令牌。访问令牌用于验证API请求。...要获取访问令牌,请使用OAuth2客户端的凭据和授权码向授权服务器的令牌端点发出POST请求。在Django REST Framework中,您可以使用TokenView视图来处理令牌端点。...第三步:使用访问令牌进行身份验证在OAuth2身份验证流程的最后一步中,我们可以使用访问令牌进行身份验证。要使用访问令牌进行身份验证,我们需要将其包含在API请求的请求头中。...为了在Django REST Framework中使用OAuth2Authentication,您需要在您的API视图类中添加以下代码:from rest_framework.views import

    3.2K20

    DRF框架学习(三)

    DRF框架学习(三) 1.视图 1.1作用 1.控制序列化器的执行(数据检验、数据保存、转换数据(序列化操作)) 2.控制数据库的查询操作。...功能: 1.视图中的request对象不再是Django中 HttpRequest类的对象,而是由DRF框架封装成的 Request类的对象。...request.query_params与Django标准的 request.GET相同,只是更换了更正确的名称而已。...1.2.2GenericAPIView 继承于APIView,是APIView的子类,在APIView的基础上添加操作序列化器和数据库查询的方法。封装的这些方法,我们可以直接使用。...时间长了之后,就知道该怎么写最简单的代码了。 2.视图集 2.1概念 将操作同一组资源的处理方法(API接口)同一个类中。

    1.5K20
    领券