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 第一节的更多相关文章

  1. android内部培训视频_第一节

    声明:本视频为公司内部做android培训时录制的,无任何商业目的.同时鉴于水平有限,可能不符合您的需求,放在这里的目的是提供给公司同事下载,作为培训的一个记录,也作为一个系列教程的自我督促完成的理由 ...

  2. 我的第一节Android课

    我的第一节安卓课程,今天非比寻常的一天,我开始了我程序猿之路的第一节安卓课程,安卓课程只是我的一个兴趣班,我的本专业是java开发,因为喜欢做一个属于自己的一个手机APP,就选多个一样技能,毕竟十八般 ...

  3. 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触

    http://blog.csdn.net/visioncat/article/details/1596576 GCC for Win32 开发环境介绍(5) 第四章 跨平台图像显示库——SDL 第一节 ...

  4. Centos7 Openstack - (第一节)基本环境配置

    Centos7 install Openstack - (第一节)基本环境配置 我的blog地址:http://www.cnblogs.com/caoguo 根据openstack官方文档配置 官方文 ...

  5. seajs第一节,seajs基本使用

    什么是seajs,它是干什么使用的,可以去网上搜索一下, 官网:http://seajs.org/docs/ 基本使用seajs <!DOCTYPE html> <html> ...

  6. 2014年度辛星html教程夏季版第一节

    从今天起开始在博客园开启自己的html教程啦,先从第一节开始把,首先推荐一个网站,就是http:/www.w3cschool.cc,这是一个公开的教学网站,但是它有一个问题,那就是虽然很全面,但是不是 ...

  7. 辛星跟您玩转vim第一节之vim的下载与三种模式

    首先值得一提的是,我的vim教程pdf版本号已经写完了,大家能够去下载,这里是csdn的下载地址:点此下载 ,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http://d ...

  8. [iOS]Objective-C 第一节课

    Objective-C 第一节课 本节课的主要内容 创建Objective-C的第一个工程 HelloWorld Objective-C中的字符串 创建Objective-C的第一个工程 打开Xcod ...

  9. VUE2.0实现购物车和地址选配功能学习第一节(来源--慕课网河畔一角)

    第一节  vue知识 vue-resource:和后台交互的一个插件,实现get.post和jsonp等功能.(替代jQuery) vue特点: 1.易用:通过创建vue实例,{{}}绑定数据十分方便 ...

随机推荐

  1. nginx处理请求的11个阶段

    Nginx 处理请求的过程一共划分为 11 个阶段,按照执行顺序依次是 post-read.server-rewrite.find-config.rewrite.post-rewrite.preacc ...

  2. php静态调用非静态方法

    <?php /** * php静态调用非静态方法 * author: 百里 * Date: 2019/7/18 * Time: 17:28 */ function dump(...$var) { ...

  3. 适合新手的160个creakme(三)

    先跑一下,这个程序应该是有定时器,多久之后自动开启,测试一下输入,序列号以字母方式输入会出现类型不匹配,之后程序自动退出 但是如果以数字方式输入序列号,则会出现,Try Again,所以这里序列号应该 ...

  4. Foo Fighters CodeForces - 1148F

    大意: 给定$n$个二元组$(val_i,mask_i)$. 保证$\sum val_i$不为$0$. 要求选择一个数$s$, 对于每个二元组$(val_i,mask_i)$, 若$s\& m ...

  5. lesson10总结

    package lesson10; public class Fa { String name="I am Fa"; static{  System.out.println(&qu ...

  6. BMP RGB888转RGB565 +上下翻转+缩放

      典型的BMP图像文件由四部分组成: (1) 位图头文件数据结构,它包含BMP图像文件的类型.文件大小和位图起始位置等信息: typedef struct tagBITMAPFILEHEADER { ...

  7. Pattern Recognition and Machine Learning-02-1.0-Introduction

    Introduction The problem of searching for patterns in data is a fundamental one and has a long and s ...

  8. VBA学习资料分享-4

    工作中经常要从数据库把数据跑出来放到EXCEL上,才能进行下一步的操作,那么VBA如何结合SQL提取数据呢?答案就是ADO. 声明和实例变量 引用法——引用Microsoft ActiveX Data ...

  9. django 中自定义方法simple_tag

    simple_tag定义以及使用 模板中自定义方法 1. 在app下创建一个名为templatetags的python包 2. 在python中创建python文件 my_tag.py 3. 在pyt ...

  10. Spring @Scheduled执行原理解析

    项目使用很多@Scheduled(cron=**) 注解来实现定时任务,既然要用就必须弄清楚的它的实现原理,于是乎翻了一下相关的源码. Spring 3.0之后增加了调度器功能,提供的@Schedul ...