一、APIView

1、继承APIView父类(Django中View的子类)
a、具备View的所有特性
b、提供了认证、授权、限流等功能

c、一旦继承了APIView之后,request是DRF中Request对象
d、Request是HttpRequest继承上做了拓展
e、Request兼容HttpRequest所有功能
f、前端传递的查询字符串参数,GET、query_params
g、前端传递application / json、application / x - www - form - urlencoded、multipart / form - data参数

2、前端传递参数类型
后端根据请求头中的Content——Type。使用统一的data属性获取
a、当前端传递的是json格式的数据时:request.data返回的数据为下图所示


b、当前端传递的是form-data格式的数据时:request.data返回的数据为下图所示


c、当前端传递的是x - www - form - urlencoded格式的参数,request.data返回的数据为下图所示


d、当我前端传递json格式的数据错误时:request.data会抛出报错**(DRF会自动处理前端传入错误的数据类型,会抛出异常)**

综上a,b,c,d得知:在视图中,直接将request.data传给data参数来接收,不需要对前端传入的参数进行json格式的判断


3、前端传递查询字符串参数,后端怎么获取?

后端有2种方式获取:request.GET和request.query_params


4、引用Response
1、将JsonResponse改为Response(Response需要导入)
from rest_framework.response import Response
2、当获取的是列表数据时,运用Response不需要加safe=False

3、在序列化器对象调用is_valid(raise_exception=True),校验失败时,会抛出异常,DRF框架会自动处理异常,代码中就不需要进行捕获了。

4、在DRF中的Response为HTTPResponse的子类
a、serializer.data参数为序列化之后的数据(一般为字典或者嵌套字典的列表)
b、Response会自动根据渲染器来将数据转化为请求头中Accept需要的格式进行返回
c、status指定响应状态码
d、content_type指定响应头中的Content-Type,一般无需指定,会根据渲染器自动设置

django—APIView详细讲解相关推荐

  1. 适合新手练手,用Python爬取OPGG里英雄联盟英雄胜率及选取率,详细讲解加注释(建议收藏练手)

    今天来个简单的小项目,适合新手拿来练手,在OPGG上爬取英雄联盟里的法师,ADC,打野,辅助所有英雄的胜率及选取率,是不是感觉很高大上,但是却很简单,只要用三十多行代码就能实现,详细讲解每一行代码加注 ...

  2. Python的零基础超详细讲解(第十三天)-Python的类与对象

    基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...

  3. Python的零基础超详细讲解(第十二天)-Python函数及使用

    基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...

  4. Python的零基础超详细讲解(第七天)-Python的数据的应用

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  5. Python的零基础超详细讲解(第五天)-Python的运算符

    往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...

  6. java异常详细讲解_Java异常处理机制的详细讲解和使用技巧

    一起学习 1. 异常机制 1.1 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 1.2 ...

  7. 未来网络发展的趋势——IPv6详细讲解与基本配置

    实验目的: 1. 掌握IPv6的基本工作原理: 2. 区别IPv6和IPv4有什么区别: 3. 掌握IPv6的一些新的特征: 4. 掌握IPv6的发展进程和部署情况: 实验拓扑: 实验步骤:   一. ...

  8. Php中如何记录本报时间,详细讲解PHP的日期时间函数date()

    详细讲解PHP的日期时间函数date() 作者:wang 日期:2009-06-06 字体大小: 小 中 大 1,年-月-日 echo date('Y-m-j'); 2007-02-6 echo da ...

  9. PE格式详细讲解4 - 系统篇04|解密系列

    PE格式详细讲解4 - 系统篇04 让编程改变世界 Change the world by program   到此为止,小甲鱼和大家已经学了许多关于 DOS header 和 PE header 的 ...

最新文章

  1. C\C++与Java中的static关键字
  2. java给你的初步印象_Java之初印象
  3. 使用pt-query-digest进行日志分析
  4. 微信引擎插件会对小游戏带来怎样的利好?(深度解读)
  5. php操作sqlserver视频教程,SQLServer数据库基础视频教程下载
  6. css三种标签隐藏方法(及它们用法区别), css显隐性问题
  7. TS+vue3 页面红色波浪线(和声明类型有关)
  8. 地铁听书系列之“看破不说破,81个为人处事潜规则”8月圆满收尾20220831
  9. vue打包中background-image图片路径问题
  10. github博客自动同步到gitee(保姆级教程)
  11. SEO索引量和收录量的关系
  12. 《Mysql是怎样运行的》读书笔记之B+树索引
  13. DM6437评估板技术手册
  14. 超级电脑病毒入侵伊朗核电厂
  15. AD(二十一)面向加工——PCB的检查和生产输出(光绘、钻孔文件、IPC网表、贴片坐标文件、BOM表)
  16. AD采集之离散化概念(Quantizer模型使用介绍)
  17. 【java毕业设计】基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统
  18. 来了解一下ASN.1?
  19. EMC-如何改善开关电源电路的EMI特性?-dv/dt和di/dt
  20. 创业者如何选择服务器?

热门文章

  1. 一图解说JAVA的项目结构
  2. 精读《设计模式 - Adapter 适配器模式》
  3. RKMEDIA--AI/AO的使用
  4. MySQL的utf8与utf8mb4编码,以及utf8_bin、utf8_general_ci编码区别
  5. python获取csv文件中某一列或者某些列
  6. getattr()函数解析
  7. 实验六 连续信号的频域分析
  8. 企业服务总线(ESB)
  9. ECPP——利用有限域上的椭圆曲线,精确判定素数的算法
  10. javascript 中 parentNode,childNodes、children 应用