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窗口的使用

最新文章

  1. TODO:小程序开发环境搭建
  2. Linux 下 YUM 安装 Percona Server 5.6
  3. 在Excel表格中输入一大段文字
  4. 联系博主(推介联系QQ)
  5. SQL技术内幕-10 in和exists 性能比较
  6. c语言中赋值语句的结果
  7. 数据库备份,远程执行SHELL脚本
  8. jQuery选择器(一)
  9. 在 Ubuntu 12.04 上通过安装源安装 Open vSwitch (OVS)
  10. javascript面向对象程序设计
  11. JDOM与DOM主要有两方面不同
  12. HDU1556(树状数组)
  13. Nginx如何配置虚拟主机?
  14. GitHub起步---创建第一个项目
  15. ●SPOJ 7258 Lexicographical Substring Search
  16. TSVN客户端复制文件
  17. 64位Win7下Asp.net项目连接Oracle时报ORA-6413:连线未打开异常
  18. 为什么毕业一年了工资还是只有7K
  19. SPOJ 839 OPTM - Optimal Marks (最小割)(权值扩大,灵活应用除和取模)
  20. LeetCode--003--无重复字符的最长子串

热门文章

  1. sort(()=>{return Math.random()-0.5)}乱序数组不准确
  2. echarts中国地图描绘
  3. APUE ☞ 文件和目录
  4. java类和对象详解
  5. 使用pycharm开发web——django2.1.5(四)视图和模板相关
  6. Spring中@Component与@Bean的区别
  7. EFcore的 基础理解<三> 多对多,唯一约束
  8. Angular 变更检测
  9. 一次解决黑帽SEO的经历
  10. SpringBoot + Dubbo + zookeeper 搭建简单分布式服务