drf 第一节
drf django-restframework
'''
1、接口:接口的概念、数据接口文档、接口规范(restful)、Postman接口测试工具
2、drf请求生命周期 - CBV
3、drf的基础组件:请求、响应、渲染、解析、异常
4、drf的序列化(核心):序列化、模型序列化、群操作序列化
5、drf的视图家族:视图类(常用)、视图工具类、工具视图类(常用)、视图集
6、drf的三大认证(核心):认证、权限、频率
7、drf的过滤:筛选、搜索、排序、分页、区间、自定义
'''
drf 框架 安装
'''
drf框架安装:
1)drf是Django的插件,所以要提前按照Django
2)按照命令:pip install djangorestframework
3)使用drf时,要在settings中注册
'''
接口
'''
什么是接口:规定了提交请求参数的请求方式、访问其可以获取响应的反馈数据的url链接
四部分:url链接 + 请求方式 + 请求参数 + 响应数据
详细解释:见小猿取经博客:https://www.cnblogs.com/xiaoyuanqujing/articles/11869745.html
'''
restful接口规范
'''
url链接:
1)接口都是操作前后台数据的,所以需要保证数据的安全性
采用https协议
2)接口用来操作数据,与网址(操作页面)有区别,所以用特定的关键字表示接口
api关键字
- https://api.baidu.com
- https://www.baidu.com/api
3)接口操作的数据称之为 资源,在url中只体现 资源 名称(名词),不体现操作资源的方式动词
常规资源接口
- https://api.baidu.com/books/
- https://api.baidu.com/books/(pk)/
非常规接口 - 和某资源不是特别密切或是不止一种资源
- https://api.baidu.com/login/
- https://api.baidu.com/place/search/
4)如果一个资源存在多版本结果,在url链接中要用特定符号来兼容多版本共存
v1|v2
- https://api.baidu.com/v1/books/
- https://api.baidu.com/v2/books/
5)群资源操作,一般还有额外的限制条件,如排序、限制调试、分页等等
?限制条件
- https://api.baidu.com/v1/books/?ordering=-price&limit=3
请求方式
6)五大请求方式
get:获取单个或多个资源
- https://api.baidu.com/books/
群查,返回多个结果对象
- https://api.baidu.com/books/(pk)/
单查,返回单个结果对象
post:新增单个或多个资源
- https://api.baidu.com/books/
单增,提交单个数据字典,完成单增,返回单个结果对象
群增,提供多个数据字典的数组,完成群增,返回多个结果对象
put:整体修改单个或多个资源
- https://api.baidu.com/books/
整体修改多个,提供多个数据字典的数组(数据字典中要包含主键),完成群改,返回多个结果对象
- https://api.baidu.com/books/(pk)/
整体修改单个,提供单个数据字典(主键在url中体现),完成单改,返回单个结果对象
patch:局部修改单个或多个资源
方式与put完全相同,不同的是:操作的资源如果有5个key-value键值对,put请求提供的字典必须全包含,但是patch提供的字典包含的键值对0~5个都可以
delete:删除单个或多个资源
- https://api.baidu.com/books/
多删,提供多个资源主键数据,完成群删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
- https://api.baidu.com/books/(pk)/
单删,不需要提供额外数据,完成单删,不做任何资源返回(一般我们会返回结果信息:成功|失败)
响应结果:
7)响应对象中要包含网络状态码(网络状态信息和网络状态码捆绑出现,不要额外设置):
1xx:基本信息
2xx:成功 - 200基本 201新增成功
3xx:重定向
4xx:客户端错误 - 400错误请求;403请求无权限;404请求资源不存在;405请求方法不允许
5xx:服务端错误 - 500服务器错误
8)数据状态码(一般都是前后台约定规则):
0:成功
1:失败 - 1xx:具体失败信息(要在接口文档中明确写出)
2:无数据 - 2xx:具体无数据信息(要在接口文档中明确写出)
9)数据状态信息(一般不仅仅是对数据状态码的解释,更多是对结果的描述,给前台开发者阅读的)
10)数据结果(常量、数组、字典),如果有子资源(图片、音频、视频),返回资源的url链接
{
"status": 0,
"msg": 'ok',
"results": [{
"name": "西游记",
"img": "https://api.baidu.com/media/book/xyj.png"
}]
}
'''
总结
1、接口:url链接+请求方式+请求参数+响应数据结果
2、接口文档:将接口的四部分翻译成文档形式 - word、md、Yapi
3、接口测试工具:Postman
4、接口规范:
链接:https://api.bai.com/v2/users/?ordering=-uid
请求方式:查get、增post、删delete、整改put、局改patch
响应:网络状态码、数据状态码、数据状态信息、数据体(子资源)
5、十大接口:单群查|单群增|单群整体改|单群局部改|单群删
6、CBV源码:as_view() => view() => dispatch() => 视图类的视图方法get|post...
7、debug窗口的使用
drf 第一节的更多相关文章
- android内部培训视频_第一节
声明:本视频为公司内部做android培训时录制的,无任何商业目的.同时鉴于水平有限,可能不符合您的需求,放在这里的目的是提供给公司同事下载,作为培训的一个记录,也作为一个系列教程的自我督促完成的理由 ...
- 我的第一节Android课
我的第一节安卓课程,今天非比寻常的一天,我开始了我程序猿之路的第一节安卓课程,安卓课程只是我的一个兴趣班,我的本专业是java开发,因为喜欢做一个属于自己的一个手机APP,就选多个一样技能,毕竟十八般 ...
- 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触
http://blog.csdn.net/visioncat/article/details/1596576 GCC for Win32 开发环境介绍(5) 第四章 跨平台图像显示库——SDL 第一节 ...
- Centos7 Openstack - (第一节)基本环境配置
Centos7 install Openstack - (第一节)基本环境配置 我的blog地址:http://www.cnblogs.com/caoguo 根据openstack官方文档配置 官方文 ...
- seajs第一节,seajs基本使用
什么是seajs,它是干什么使用的,可以去网上搜索一下, 官网:http://seajs.org/docs/ 基本使用seajs <!DOCTYPE html> <html> ...
- 2014年度辛星html教程夏季版第一节
从今天起开始在博客园开启自己的html教程啦,先从第一节开始把,首先推荐一个网站,就是http:/www.w3cschool.cc,这是一个公开的教学网站,但是它有一个问题,那就是虽然很全面,但是不是 ...
- 辛星跟您玩转vim第一节之vim的下载与三种模式
首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载,这里是csdn的下载地址:点此下载 ,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http://d ...
- [iOS]Objective-C 第一节课
Objective-C 第一节课 本节课的主要内容 创建Objective-C的第一个工程 HelloWorld Objective-C中的字符串 创建Objective-C的第一个工程 打开Xcod ...
- VUE2.0实现购物车和地址选配功能学习第一节(来源--慕课网河畔一角)
第一节 vue知识 vue-resource:和后台交互的一个插件,实现get.post和jsonp等功能.(替代jQuery) vue特点: 1.易用:通过创建vue实例,{{}}绑定数据十分方便 ...
随机推荐
- C# 添加日志文件
StreamWriter log_sw; // 新建文件 log_sw = File.AppendText(log_str); // 写入日志文件 log_sw.WriteLine(s + " ...
- 新拉的项目在idea中启动时报如下错误:org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
今天真的是很苦恼,之前启动项目没有任何问题,今天突然启动时给我报了如下一个错误. 详细报错信息: org.apache.catalina.core.ContainerBase.addChildInte ...
- DP单调队列--斜率优化P3195
题意:https://www.luogu.com.cn/problem/P3195 思路:https://www.luogu.com.cn/problemnew/solution/P3195 #def ...
- S02_CH05_UBOOT实验Enter a post title
S02_CH05_UBOOT实验 5.1什么是固化 我们前几章的程序都是通过JTAG先下载bit流文件,再下载elf文件,之后点击Run As来运行的程序.JTAG的方法是通过TCL脚本来初始化PS, ...
- 【记忆化搜索】Happy Happy Prime Prime
题目描述 RILEY VASHTEE: [reading from display] Find the next number in the sequence:313 331 367 ...? Wha ...
- 怎样快捷获取网页的window对象
使用document.defaultView; document.defaultView === window 注意: 1. 如果当前文档不属于window对象, 则返回null; 2. docume ...
- c#Socket通讯
参考http://bbs.cskin.net/thread-326-1-1.html的大神的代码 socket封装 /// <summary> /// 自定义Socket对象 /// &l ...
- C# enum枚举知识总结
C#中除了简单的变量类型外,还提供了三种较为复杂的变量类型,包括枚举.结构和数组.本文主要讲述枚举相关的知识. 枚举类型(也称为枚举),提供了一种有效的方式,来定义可能分配给变量的一组已命名的整数常量 ...
- [NOIP10.5模拟赛]1.a题解--离散化+异或线段树
题目链接: 咕咕咕 https://www.luogu.org/problemnew/show/CF817F 闲扯 在Yali经历几天折磨后信心摧残,T1数据结构裸题考场上连暴力都TM没打满 分析 观 ...
- arcgis 服务网页打开需要输入用户名和密码问题解决
解决方法: 在站点manager中,检查服务的安全性,确认是否是公共.如果不是,设置为公共,面向任何人:如果服务已经被设置为面向公共,那么先设置为私有,面向所选用户,然后再设置为公共,面向任何人 如果 ...