django—APIView详细讲解
一、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详细讲解相关推荐
- 适合新手练手,用Python爬取OPGG里英雄联盟英雄胜率及选取率,详细讲解加注释(建议收藏练手)
今天来个简单的小项目,适合新手拿来练手,在OPGG上爬取英雄联盟里的法师,ADC,打野,辅助所有英雄的胜率及选取率,是不是感觉很高大上,但是却很简单,只要用三十多行代码就能实现,详细讲解每一行代码加注 ...
- Python的零基础超详细讲解(第十三天)-Python的类与对象
基础篇往期文章如下: Python的零基础超详细讲解(第一天)-Python简介以及下载 Python的零基础超详细讲解(第二天)-Python的基础语法1 Python的零基础超详细讲解(第三天)- ...
- Python的零基础超详细讲解(第十二天)-Python函数及使用
基础篇往期文章: Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博 ...
- Python的零基础超详细讲解(第七天)-Python的数据的应用
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- Python的零基础超详细讲解(第五天)-Python的运算符
往期文章 Python的零基础超详细讲解(第一天)-Python简介以及下载_编程简单学的博客-CSDN博客 Python的零基础超详细讲解(第二天)-Python的基础语法1_编程简单学的博客-CS ...
- java异常详细讲解_Java异常处理机制的详细讲解和使用技巧
一起学习 1. 异常机制 1.1 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 1.2 ...
- 未来网络发展的趋势——IPv6详细讲解与基本配置
实验目的: 1. 掌握IPv6的基本工作原理: 2. 区别IPv6和IPv4有什么区别: 3. 掌握IPv6的一些新的特征: 4. 掌握IPv6的发展进程和部署情况: 实验拓扑: 实验步骤: 一. ...
- Php中如何记录本报时间,详细讲解PHP的日期时间函数date()
详细讲解PHP的日期时间函数date() 作者:wang 日期:2009-06-06 字体大小: 小 中 大 1,年-月-日 echo date('Y-m-j'); 2007-02-6 echo da ...
- PE格式详细讲解4 - 系统篇04|解密系列
PE格式详细讲解4 - 系统篇04 让编程改变世界 Change the world by program 到此为止,小甲鱼和大家已经学了许多关于 DOS header 和 PE header 的 ...
最新文章
- C\C++与Java中的static关键字
- java给你的初步印象_Java之初印象
- 使用pt-query-digest进行日志分析
- 微信引擎插件会对小游戏带来怎样的利好?(深度解读)
- php操作sqlserver视频教程,SQLServer数据库基础视频教程下载
- css三种标签隐藏方法(及它们用法区别), css显隐性问题
- TS+vue3 页面红色波浪线(和声明类型有关)
- 地铁听书系列之“看破不说破,81个为人处事潜规则”8月圆满收尾20220831
- vue打包中background-image图片路径问题
- github博客自动同步到gitee(保姆级教程)
- SEO索引量和收录量的关系
- 《Mysql是怎样运行的》读书笔记之B+树索引
- DM6437评估板技术手册
- 超级电脑病毒入侵伊朗核电厂
- AD(二十一)面向加工——PCB的检查和生产输出(光绘、钻孔文件、IPC网表、贴片坐标文件、BOM表)
- AD采集之离散化概念(Quantizer模型使用介绍)
- 【java毕业设计】基于javaEE+原生Servlet+jsp的人力资源管理系统设计与实现(毕业论文+程序源码)——人力资源管理系统
- 来了解一下ASN.1?
- EMC-如何改善开关电源电路的EMI特性?-dv/dt和di/dt
- 创业者如何选择服务器?