## rest规范:
    通过不同的 method 找到对应的 url

## Django 请求生命周期
 - wsgi ,它就是socket 服务端,服务端接收用户请求并将请求初次封装,然后交给 Django
 - 中间件帮助我们对请求进行校验或在请求对象中添加其他相关数据,如:csrf,request.session
 - 路由匹配
 - 视图函数中进行业务逻辑的处理,可能涉及到 orm,templates ->渲染
 - 中间件对响应的数据进行处理,
 - wsgi,将响应的内容发送给浏览器

## CBV 和 FBV

CBV 通过函数调用方法
FBV 通过类调用方法
    其本质上都是 CBV
但是 FBV 内部封装了关于 method 的方法,由于基本上都是前端的请求,所有像GET,POST等方法用的频繁,
而CBV将这些方法封装了起来,使得开发时更便捷了许多,所以CBV更适合写接口

######  标准的  ######
2.1 FBV方式请求的过程

用户发送url请求,Django会依次遍历路由映射表中的所有记录,一旦路由映射表其中的一条匹配成功了,
就执行视图函数中对应的函数名,这是fbv的执行流程

2.2 FBV方式请求的过程

当服务端使用CBV模式的时候,用户发给服务端的请求包含url和method,这两个信息都是字符串类型

服务端通过路由映射表匹配成功后会自动去找dispatch方法,然后Django会通过dispatch反射的方式找到类中对应的方法并执行

类中的方法执行完毕之后,会把客户端想要的数据返回给dispatch方法,由dispatch方法把数据返回经客户端

## HTTP 协议

什么是 HTTP协议?

"""

HTTP 协议是 超文本传输的协议,是一种规范。

HTTP优点:

1. HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记

2. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

3.由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

4. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

HTTP缺点:

安全性低,数据都是以明文方式传输的。

"""

HTTP协议是一种传输数据格式

自己模拟过一次 客户端与服务端的 socket 连接,
当客户端请求数据的是时候,会携带请求头与请求体,

请求头常见类型:Content-Type,User-Agent,cookie,Accept,Host等
请求体常见类型:application/x-www-form-urlencoded,multipart/form-data,application/json,text/xml

而服务器需要根据指定的请求头来解析数据,
一次请求响应后,则断开连接

常见请求体:
    Form 表单提交
    Ajax 请求

Django 获取请求体:
    - request.POST
    - request.body

## 跨域

由于浏览器的同源策略 -- 当浏览器的url发送一个请求,请求回来的时候url,端口等不一致而导致跨域

协议,域名,端口一致则称为同源

解决方法: 绕过同源策略
    -- jsonp
        动态创建 script 标签
        同源策略会阻止ajax请求,但不会阻止具有 src 属性的标签 :
         <script src=''></script>        
    -- cors

在第一次发送请求的时候,会有一个校验的过程 - opption(请求) 如果校验成功,则发送真实数据

  服务端 设置响应头
        response['Access-Control-Allow-Origin'] = "*"

## 中间件

- 中间件 五个方法
 - 应用场景:
    - 登陆认证,不需要在每个函数中添加装饰器
    - 权限,当用户登陆的时候获取当前用户所有权限并放入session,当访问其他页面时,
        将当前url和session中进行匹配如有就通过,没有就禁止访问
    - 跨域,
        jsonp,
        cors

python - 一键复习知识点的更多相关文章

  1. python遇到的知识点

    python遇到的知识点,记录一下.方便学习. 文件相关操作 查了资料,关于open()的mode参数: 'r':读 'w':写 'a':追加 'r+' == r+w(可读可写,文件若不存在就报错(I ...

  2. Python并发复习1 - 多线程

    一.基本概念 程序: 指令集,静态, 进程: 当程序运行时,会创建进程,是操作系统资源分配的基本单位 线程: 进程的基本执行单元,每个进程至少包含一个线程,是任务调度和执行的基本单位 > 进程和 ...

  3. Python数据分析--Pandas知识点(三)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) Python数据分析--Pandas知识点(二) 下面将是在知识点一, ...

  4. Python数据分析--Pandas知识点(二)

    本文主要是总结学习pandas过程中用到的函数和方法, 在此记录, 防止遗忘. Python数据分析--Pandas知识点(一) 下面将是在知识点一的基础上继续总结. 13. 简单计算 新建一个数据表 ...

  5. python一键电影搜索与下载

    代码地址如下:http://www.demodashi.com/demo/14313.html python一键电影搜索与下载 概述 使用python搜索并爬取豆瓣电影信息,包括评分,主演,导演,类型 ...

  6. 用Python一键搭建Http服务器的方法

    用Python一键搭建Http服务器的方法 Python3请看 python -m http.server 8000 & Python2请看 python -m SimpleHTTPServe ...

  7. Python 五个知识点搞定作用域

    Python 五个知识点搞定作用域 1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? #块级作用域 if 1 == 1: name = "lzl" print(na ...

  8. Python一键转Jar包,Java调用Python新姿势!

    粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文.言归正传,咱们开始吧! 本文结构: 需求背景 进击的Python Java和Pytho ...

  9. JavaEE期末复习知识点总结

    JavaEE期末复习知识点总结 Java企业应用开发环境 Maven的基础概念 Maven是一个项目管理工具,可以对 Java 项目进行构建.依赖管理 Maven仓库 Maven 仓库是项目中依赖的第 ...

随机推荐

  1. RPC和RestFul

    什么是REST REST是一种架构风格,指的是一组架构约束条件和原则.满足这些约束条件和原则的应用程序或设计就是 RESTful.REST规范把所有内容都视为资源,网络上一切皆资源. REST并没有创 ...

  2. Django模型层之更多操作

    Django模型层之更多操作 一 .ORM字段 1.1 常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为 ...

  3. appium1.6在mac上环境搭建启动ios模拟器上Safari浏览器 转自:上海-悠悠

    前言 在mac上搭建appium踩了不少坑,先是版本低了,启动后无限重启模拟器.后来全部升级最新版本,就稳稳的了. 环境准备: 1.OS版本号10.12 2.xcode版本号8.3.2 3.appiu ...

  4. js调用浏览器复制

    <script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...

  5. oracle中的CURRVAL和NEXTVAL用法

    原文:https://blog.csdn.net/qianyiyiding/article/details/51592689  1.什么是sequence?其作用是什么? 在Oracle数据库中,什么 ...

  6. java之struts2之文件上传

    1.在大多数应用中,都有文件上传功能.有两种文件上传的方式,一种是自己去解析http协议,获取文件上传的内容.另一种是通过第三方插件来实现文件上传.第三方插件一般有两种,smartfileupload ...

  7. Centos Consul集群及Acl配置

    一,准备工作 准备四台centos服务器,三台用于consul server 高可用集群,一台用于consul client作服务注册及健康检查.架构如下图所示 二,在四台服务器上安装consul 1 ...

  8. Windows server 2012 R2下安装sharepoint2013

    • 安装windows server 2012 R2 系统,配置IP.系统打补丁,修改主机名.加域后重启.• 安装WEB服务器,勾选windows身份验证 • 安装应用程序服务器 • 安装.NET F ...

  9. 14.1 Scroll说明和注意事项

    使用scroll滚动搜索: 比如全文搜索10万条数据,不能一次全搜出来返回,太耗时了.通常是一批一批的获取结果,滚动搜索     1. 第一次搜索时,会生成这批数据的快照,下次再搜的时候,基于此快照进 ...

  10. VBA 字符串-相关函数(1-5)

    Instr()函数 InStr()函数返回一个字符串第一次出现在一个字符串,从左到右搜索.返回搜索到的字符索引位置. 语法 InStr([start,]string1,string2[,compare ...