restful规范和APIView
django生命周期
1.先进入wsgi协议的web服务器2.进入django的中间件3.路由4.视图5.取模板,取数据,用数据渲染模板6.返回模板的字符串7.在wsgi中封装后发送给浏览器
开发模式
1.前后端不分离项目可以使用django的模板语法进行渲染
2.前后端分离前端和后端通过json格式数据交互
cbv源码分析
路由如果这么配置:url(r'^test/',views.test.as_views())请求通过中间件后进入路由,根据路由匹配,一旦成功,会执行后面函数(request),本质就是执行了as_view内部的view函数,内部有调用了self.dispatch。根据请求方式,执行不同的方法(必然get请求,就会执行我们写的视图的get方法)尝试自己封装一个APIView,重写dispatch方法,在执行父类的dispatch之前,写一些逻辑,请求来了,就会执行这些逻辑
APIView的dispath方法
1.对原生request对象做了一层包装(面向对象的封装),以后再用的request对象都是新的request对象2.在APIView中self.initial(request,*args,**kwargs),里面有频率控制,权限控制和认证相关3.根据请求方法执行我们写的视图类中的相应方法视图类中方法的request对象,已经变成了封装后的request
Request类
1.原生的request是self.request2.取以post形式提交的数据,从request.data中取(urlencoded,formdata,json格式)3.query_params就是原生request的GET的数据4.上传的文件是从FILES中取5.(重点)其他的属性,直接request.属性名(因为重写了__getattr__方法)
restful规范
面向资源架构1.API与用户通信协议,总是使用Https协议(相比http有加密的功能)2.域名有区分-https://api.example.com-https://example.org/api/3.版本-可以放在路径中-可以放在请求头中4.路径视网络上任何东西都是资源,均使用名词表示(重点)-https://api.example.com/v1/zoos5.通过method区分是什么操作-get表示获取-post表示新增-delete表示删除-patch/put表示修改6.过滤通过url上传参的形式传递搜索条件7.状态码{'status_code':100}8.错误处理,应返回错误信息{'status_code':100,'msg':'登录成功'}{'status_code':101,'msg':'用户错误'}9.返回结果,针对不同操作,服务器向用户返回的结果-get获取所有资源/get获取一个资源-127.0.0.1/api/vi/books 获取所有图书{'status_code':100,'msg':'获取成功',data:'[{},{}]'}-127.0.0.1/api/vi/books/3 获取id为3的图书{'status_code':100,'msg':'获取成功',data:{name:xx...}}-新增数据,把新增的数据再返回-修改了数据,返回完整的资源对象-删除数据,返回一个空文档10.返回结果中提供链接
转载于:https://www.cnblogs.com/Mr-bear/articles/11116704.html
restful规范和APIView相关推荐
- Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
阅读目录 一.Django请求生命周期: 二.WEB开发模式: 三.cbv源码分析: 四.认识RESTful 补充知识:跨域 五.基于原生django开发restful的接口 六.drf安装.使用.A ...
- drf1 rest restful规范
web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候,都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案.目前主流的三种w ...
- koa --- restful规范及其栗子
遵循Restful规范的简单的栗子 前端代码: <html><head><script src="https://cdn.jsdelivr.net/npm/vu ...
- Django之 RESTful规范
RESTful 规范 一.什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征 ...
- php restful规范,RESTFul API规范 详细指南
RESTFul规范 RESTFul是一种HTTP API接口规范,只要满足的RESTFul规范,即可称为RESTFul API. 既然是接口,我们先来了解一下,他和传统的API接口有何不同吧. 本文以 ...
- Django RESTful规范
Restful : web服务交互: 我们在浏览器中能看到的每个网站, 都是一个web服务. 那么我们在提供每个web服务的时候, 都需要前后端交互. 前后端交互就一定有一些实现方案, 我们通常叫we ...
- Restful规范-开发api接口
web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候, 都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案. 目前主流的三 ...
- Drf从入门到精通一(API接口、Postman、Restful规范、序列化、快速使用drf、CBV源码分析)
文章目录 一.前后端开发模式 二.API接口 三.接口测试工具Postman 四.Restful规范 五.序列化反序列化 六.DjangoRestFramework快速使用 七.CBV源码分析 一.前 ...
- REST-Framework: RESTful规范
目录 一 什么是RESTful 二 RESTful API设计 三 基于原生的Django实现 一 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representa ...
最新文章
- asa hacker
- 鸿海拟将相关物流企业在中国大陆上市
- vue使用总结-生命周期篇
- 对象指针与this指针
- 有数据库文件怎么连接到服务器,怎么连接到服务器中的数据库
- centos(7.0) 上 crontab 计划任务
- 八大主流浏览器自动填表功能大比拼
- 2021-01-03
- 反射、注解、字节码、类加载机制
- “拖延症”的良方——对于追求完美,自制力差,情绪化的人很受用...
- git拉取代码报错update_ref failed for ref ‘ORIG_HEAD‘:cannot lock ref ‘ORIG_HEAD‘
- conda 配置R虚拟环境并安装 monocle 包
- mds聚类matlab,机器学习C9笔记:MDS聚类可视化
- 设计模式常用的七大原则之③【依赖倒转】原则
- 原生安卓去除网络叉号
- CTFshow——萌新记忆
- Spring Cloud Alibaba——Nacos服务配置中心
- 递归算法_字符串反转_20230412
- [思考的乐趣] 有趣的莫比乌斯带
- 大连BI工具大连BI软件哪家好
热门文章
- python第一周小测验_Python第一周小结
- 故障模块名称kernelbase.dll_西门子PLC数字量DI扩展模块1221一级总代理
- mysql查询过程从客户端发送查询请求_MySQL查询过程和高级查询
- 【华科考研复试机试题】华中科技大学考研复试机试题解题报告
- 51nod 1118 机器人走方格 解题思路:动态规划 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题
- pytorch 之 torch.eye()函数
- 动态分配的const对象
- c++ 在multimap中查找关键字的程序举例
- python类基础知识注意点
- C++ int转string的几种方法比较