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相关推荐

  1. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)

    阅读目录 一.Django请求生命周期: 二.WEB开发模式: 三.cbv源码分析: 四.认识RESTful 补充知识:跨域 五.基于原生django开发restful的接口 六.drf安装.使用.A ...

  2. drf1 rest restful规范

    web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候,都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案.目前主流的三种w ...

  3. koa --- restful规范及其栗子

    遵循Restful规范的简单的栗子 前端代码: <html><head><script src="https://cdn.jsdelivr.net/npm/vu ...

  4. Django之 RESTful规范

    RESTful 规范 一.什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征 ...

  5. php restful规范,RESTFul API规范 详细指南

    RESTFul规范 RESTFul是一种HTTP API接口规范,只要满足的RESTFul规范,即可称为RESTFul API. 既然是接口,我们先来了解一下,他和传统的API接口有何不同吧. 本文以 ...

  6. Django RESTful规范

    Restful : web服务交互: 我们在浏览器中能看到的每个网站, 都是一个web服务. 那么我们在提供每个web服务的时候, 都需要前后端交互. 前后端交互就一定有一些实现方案, 我们通常叫we ...

  7. Restful规范-开发api接口

    web服务交互 我们在浏览器中能看到的每个网站,都是一个web服务.那么我们在提供每个web服务的时候, 都需要前后端交互,前后端交互就一定有一些实现方案,我们通常叫web服务交互方案. 目前主流的三 ...

  8. Drf从入门到精通一(API接口、Postman、Restful规范、序列化、快速使用drf、CBV源码分析)

    文章目录 一.前后端开发模式 二.API接口 三.接口测试工具Postman 四.Restful规范 五.序列化反序列化 六.DjangoRestFramework快速使用 七.CBV源码分析 一.前 ...

  9. REST-Framework: RESTful规范

    目录 一 什么是RESTful 二  RESTful API设计 三 基于原生的Django实现 一 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representa ...

最新文章

  1. asa hacker
  2. 鸿海拟将相关物流企业在中国大陆上市
  3. vue使用总结-生命周期篇
  4. 对象指针与this指针
  5. 有数据库文件怎么连接到服务器,怎么连接到服务器中的数据库
  6. centos(7.0) 上 crontab 计划任务
  7. 八大主流浏览器自动填表功能大比拼
  8. 2021-01-03
  9. 反射、注解、字节码、类加载机制
  10. “拖延症”的良方——对于追求完美,自制力差,情绪化的人很受用...
  11. git拉取代码报错update_ref failed for ref ‘ORIG_HEAD‘:cannot lock ref ‘ORIG_HEAD‘
  12. conda 配置R虚拟环境并安装 monocle 包
  13. mds聚类matlab,机器学习C9笔记:MDS聚类可视化
  14. 设计模式常用的七大原则之③【依赖倒转】原则
  15. 原生安卓去除网络叉号
  16. CTFshow——萌新记忆
  17. Spring Cloud Alibaba——Nacos服务配置中心
  18. 递归算法_字符串反转_20230412
  19. [思考的乐趣] 有趣的莫比乌斯带
  20. 大连BI工具大连BI软件哪家好

热门文章

  1. python第一周小测验_Python第一周小结
  2. 故障模块名称kernelbase.dll_西门子PLC数字量DI扩展模块1221一级总代理
  3. mysql查询过程从客户端发送查询请求_MySQL查询过程和高级查询
  4. 【华科考研复试机试题】华中科技大学考研复试机试题解题报告
  5. 51nod 1118 机器人走方格 解题思路:动态规划 1119 机器人走方格 V2 解题思路:根据杨辉三角转化问题为组合数和求逆元问题
  6. pytorch 之 torch.eye()函数
  7. 动态分配的const对象
  8. c++ 在multimap中查找关键字的程序举例
  9. python类基础知识注意点
  10. C++ int转string的几种方法比较