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

drf之请求、响应、视图

可以在rest_framework.settings 查找所有的drf默认配置项。其中配置响应格式的配置项为: ? 在局部配置使用,即只对某一个视图类配置生效。...2.1 两个视图基类 2.1.1 APIView APIView是drf 提供的所有视图的基类,继承自Django的View父类。...APIView与View的不同之处在于: 传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework...在APIView中仍以常规的类视图定义方法来实现get() 、post() 或者其他请求方式的方法。例如使用APIView简单的实现五个增删查改的API接口。...提供的关于序列化器使用的属性与方法 属性:serializer_class  指明视图使用的序列化器 方法: get_serializer_class(self) : 当出现一个视图类中调用多个序列化器时

2.8K20

Django REST Framework-什么是视图(一)

在Django REST Framework中,视图是处理HTTP请求和响应的核心组件。视图接收HTTP请求,然后根据请求的方法(GET,POST,PUT等)执行相应的操作,并返回HTTP响应。...DRF视图可以是函数视图或基于类的视图。函数视图类似于Django中的函数视图,它接收一个request对象并返回一个响应。...基于类的视图是DRF中的主要视图类型,它继承自DRF提供的基类,并提供了一些常见的功能,例如身份验证,权限控制和序列化器的使用。...以下是一个简单的基于类的视图示例:from rest_framework import genericsfrom .serializers import BookSerializerfrom .models...在perform_create()方法中,我们保存了反序列化的数据。在DRF中,还有许多其他视图类型可用。

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

    6.寻光集后台管理系统-用户管理(注册视图)

    函数视图 基于函数的视图 def some_view(request): dosometing return HttpResponse(html) 特点: 逻辑清晰好理解 复用性较差 类视图...基于类的视图,换了一种写法,不能替代函数视图,有一些优势: 用特定的方法去管理http方法(get post) 使用面向对象的技术,可以将代码分解成可重用的组件 所以后续大部分会采用类视图的方式编写代码...注册视图 注册需要前端发起一个携带需要注册的账号密码的post请求 这种常规的增删改查视图DRF已经封装好了,直接进行继承即可 from rest_framework import generics...class UserRegisterView(generics.CreateAPIView): serializer_class = UserRegisterSerializer 只需要两行就完成了注册类视图的编写...): serializer_class = UserRegisterSerializer 路由 路由的作用和路由器类似,当一个用户请求django站点的一个页面时,是路由系统通过对url的路径部分进行匹配

    1.1K20

    DRF 视图组件

    目录 DRF 视图组件 视图组件大纲 两个视图基本类 五个扩展类 九个子类视图 视图集 常用视图集父类 魔法类 一览表 DRF中视图的“七十二变” 第一层:基于APIview的五个接口 第一层五个接口demo...action属性 DRF 视图组件 DRF框架提供了很多通用的视图基类与扩展类,上篇使用的APIView是比较偏Base的,视图的使用更加简化了代码,这里介绍一下其他视图的用法 Django...REST framwork 提供的视图的主要作用: 控制序列化器的执行(检验、保存、转换数据) 控制数据库查询的执行 先来看看这其中的人情世故:两个视图基本类,五个扩展类,九个视图子类,视图集方法,视图集...APIView:DRF最顶层视图类 GenericAPIView:DRF通用视图类 五个扩展类 扩展类不是视图类,没有集成APIView,需要配合GenericAPIView使用,因为五个扩展类的实现需要调用...魔法类 ViewSetMixin:控制自动生成路由 一览表 DRF中视图的“七十二变” 第一层是继承APIView写,第二层基于基于GenericAPIView写,第三层基于GenericAPIView

    1.4K10

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

    一、基础视图 (APIView)APIView 是 DRF 中所有视图的基类,继承自 Django 的 View,并添加了 DRF 特有的功能(如认证、权限、限流等)。...为了解决这个问题,DRF 提供了通用视图。二、通用视图 (Generic Views)DRF 的通用视图基于 "Mixin 组合" 思想,将常用功能封装成可复用的组件,通过继承组合实现复杂功能。...常用通用视图ListAPIView:获取列表数据(GET)CreateAPIView:创建数据(POST)RetrieveAPIView:获取单个数据(GET)UpdateAPIView:更新数据(PUT...GenericAPIView 是 DRF 视图系统的核心抽象,它通过标准化的属性和方法,简化了数据查询、序列化和过滤等常见操作。...类继承关系GenericAPIView 是 DRF 通用视图体系的基石,其继承关系如下作为 APIView 的子类,GenericAPIView 保留了请求处理、认证、权限、限流等基础功能GenericAPIView

    31810

    测试开发进阶(二十九)

    再次优化 查看 rest_framework.generics.CreateAPIView rest_framework.generics.ListAPIView 可以看到很多重复的代码 ?...,不能合并 有相同的get方法 两个类视图所对应的url地址不一致 再次优化 优化思路:使用动作来触发,而不是请求方法 from rest_framework import viewsets viewsets...不再支持 get/post/put/delete等请求方法,而只支持action动作 但是 ViewSet类中没有提供 get_object(), get_serializer等方法 继承 viewsets.GenericViewSet...Django中 View DRF中 APIView GenericAPIView mixins扩展类 CreateAPIView(合并拓展类) 视图集 action和请求方法的映射 ViewSet GenericViewSet...__doc__ or None return func return decorator 可以使用action装饰器来声明自定义的动作 默认情况下,实例方法名就是动作名 methods

    88310

    【愚公系列】2022年04月 Python教学课程 69-DRF框架之五个扩展类视图的子类视图

    文章目录 一、DRF框架之五个扩展类视图的子类视图 1.CreateAPIView 2.ListAPIView 3.RetireveAPIView 4.DestoryAPIView 5.UpdateAPIView...1.封装序列化器的常用方法 2.序列化器的定义 3.视图定义使用序列化器 总结 ---- 一、DRF框架之五个扩展类视图的子类视图 常用子类视图 1.CreateAPIView 提供 post 方法...BookInfo from drf_book.serializer import BookSerializer from rest_framework.generics import ListCreateAPIView...(request) print(data) 总结 子类视图总共有9个如下: CreateAPIView:继承CreateModelMixin,GenericAPIView,有post方法,新增数据 DestroyAPIView...框架的五个扩展类视图的子类视图,是为了更便于crud的封装减少通用逻辑的代码量,也是DRF简化版本,其实下面还有视图集可以进一步简化代码,等下一节介绍了。

    46720

    不会DRF?源码都分析透了确定不来看?

    官网:https://www.django-rest-framework.org/ drf安装默认安装的最新版本,如果django版本过低会自动升级到3.x版本 版本支持对应关系 示例...drf快速使用 快速写5个接口 使用Django写五个接口得配5个路由,5个视图函数去处理,现在使用drf不需要了,如下: -查询所有---》get->http://127.0.0.1:8000...,这里尽量在body体里写全参数 局部修改:修改id为1的数据,修改啥写啥 删除一条数据:删除id为2的数据 CBV源码流程分析 因为DRF框架里大部分都是基于CBV(视图类)...多态、组合、反射 Django View和DRF APIView的小插曲 ps:不管是DRF中的APIView还是乱七八糟的xxView,最后只要继承了Django中的View就是视图类 DRF之APIView...和Request对象分析 APIView的执行流程 # 同样和Django中一样写一个视图类,只不过DRF中用APIView底层还是View '''views.py''' from rest_framework.response

    1.7K10

    django rest framework通用view

    官方文档:http://www.django-rest-framework.org/ drf为我们提供强大的通用view的功能,本博客对这些view进行简要的总结分析。...首先,我们看一下主要的几种view以及他们之间的关系。 ? 这其中,还涉及了mixins,主要也分为5类: ? 下面我们以课程(course)作为一个例子,对view进行一个总结。...1. django View   首先,我们使用django自带的view,获取一个课程的列表: # drf是通过json的格式进行数据交互的,所以这里也返回json数据 import json from...它们两者的关系同1,要么设置属性,要么重载方法。它们的功能在于获取某一个实例时,指定传进来的后缀是什么。...,强烈建议在做drf的时候,使用ViewSet与mixins方法结合进行开发,为我这种小白开发者提供了很强大完整的功能!

    1.3K20

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

    当然数据库性能也没有说的那么不堪,对于大部分访问量不大的个人博客而言,任何关系型数据库都足以应付。...drf-extensions Cache django 的缓存框架比较底层,drf-extensions 在 django 缓存框架的基础上,针对 django-rest-framework 封装了更多缓存相关的辅助函数和类...我们需要用到的主要有这些: KeyConstructor 可以理解为缓存键生成类。...cache_response 装饰器 这个装饰器用来装饰 django-rest-framework 的视图(单个视图函数、视图集中的 action 等),被装饰的视图将具备缓存功能。...,它继承自 DefaultKeyConstructor,这个基类中定义了 3 条缓存 key 的 KeyBit: 接口调用的视图方法的 id,例如 blog.views.

    1.5K40

    RESTful源码笔记之RESTful Framework的APIview, Viewset总结分析

    0x00  引言 官方文档:http://www.django-rest-framework.org/ drf为我们提供强大的通用view的功能,本博客对这些view进行简要的总结分析。...首先,我们看一下主要的几种view以及他们之间的关系。 ? 这其中,还涉及了mixins,主要也分为5类: ?...0x01 django View 首先,我们使用django自带的view,获取一个课程的列表: # drf是通过json的格式进行数据交互的,所以这里也返回json数据 import json from...它们两者的关系同1,要么设置属性,要么重载方法。它们的功能在于获取某一个实例时,指定传进来的后缀是什么。   ...,强烈建议在做drf的时候,使用ViewSet与mixins方法结合进行开发,为我这种小白开发者提供了很强大完整的功能!

    1.3K10

    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)符合前端要求的格式;(需要...Django REST framework的Request对象,以及上面使用的Response对象,在DRF的Request对象和Response对象中介绍。...基于函数的视图 有时候,我们并不需要使用类。为此,DRF提供了一组简单的装饰器,用于包装基于函数的视图以确保它们接收DRF的Request对象。

    1.2K10

    django-rest-framewor

    DRF(Django RestFramework)是一套基于Django开发的、帮助我们更好的设计符合REST规范的Web应用的一个Django App,所以,本质上,它是一个Django App。...DRF APIView请求流程: ?   DRF对django视图配置流程图(个人画) ?...定义:需要为post新增url,因为根据规范,url定位资源,http请求方式定义用户行为 定义post方法:在视图类中定义post方法 开始序列化:通过我们上面定义的序列化类,创建一个序列化对象,传入参数...程序启动,开始初始化,获取配置信息,获取视图类并加载到内存中,获取url及视图类的对应关系 开始绑定视图类和url的对应关系,执行as_view()方法 as_view()方法被执行的时候传递了参数,为字典形式...(**initkwargs), cls是视图类,执行视图函数时self就指向视图函数的实例对象 等待客户端请求 请求到来,开始执行视图函数,注意,调用视图函数时的方式是view(request),而如果

    2.2K10

    python技术面试题(二十三)

    __enter__ 方法会在执行 with 后面的语句时执行,一般用来处理操作前的内容。比如一些创建对象,初始化等。...功能: 1.视图中 request 对象不再是 Django 原始的 HTTPRequest 类的对象,而是由 DRF 框架封装成的 Request 类的对象。...比如 request.data 保存解析之后的请求体的数据,并且已经解析成了字典或者类字典,相当于包含 Django 原始 request 对象中的 request.body | request.POST...索引相当于关系型数据库中的数据库,类型对应关系型数据库中的表,文档对应关系型数据库中的记录。 2.项目中是如何向其中添加数据的?...Django中数据库的相关操作 DRF框架中的英文单词 DRF框架 Django相关知识点回顾 python技术面试题-腾讯

    1.5K10
    领券