2020-12-15

**

Django的介绍

**

  1. 什么是wsgi?
    在Python开发中,一般我们将它分为两个部分,服务器程序,应用程序,服务器程序主要负责是将客户端的请求接收,整理,应用程序主要是负责逻辑处理,对于服务器来说这样就需要不同的框架,而框架就需要支持他们的服务器才能进行开发使用,那么这个时候就需要一个标准,wsgi,规定双方的接口,提供什么功能,两者就可以配合使用。

MVT模式

它是由三部分组成,模型 model 视图 view 模板 template

model :负责业务对象和数据库的映射
view:负责将页面展示给用户
template:负责业务逻,在适当时可以调用model和view

**

MVC模式

**
模型 model 视图 view 控制器 controllor

model:负责业务对象和数据库的映射
view :负责用户的交互
controllor:接收用户输入,调用model和view,返回响应

**

三次握手四次挥手

**
建立连接之前:
三次握手
第一次:客户端对服务端发送请求连接
第二次:服务端对客户端发送确认请求,等待连接
第三次:客户端对服务端发送确认连接,建立连接
断开连接之前:
四次挥手
第一次:客户端向服务端发送断开请求
第二次:服务端向客户端发送确认断开
第三次:服务端断开连接
第四次:客户端确认断开,断开连接

**

三次握手

**
在这里插入图片描述
四次挥手

在这里插入图片描述

http请求报文的结构

一个http的报文请求是由 请求行,请求头,请求体三部分组成

get请求报文没有请求体,只有请求行,请求头。
post请求是由请求行,请求头,请求体三部分组成

一个完整的报文请求:
请求行:第一行就是请求行,
请求头:空行以上,第一行一下都是请求头,
请求体:空行以下,都是请求体。

**

http请求的常见方式

**
斜线为不常用
http请求的方式有八种
1、get 给特定的url发送请求,数据在url中暴露
2、post 向特定的url发送数据请求,数据放在请求体中
3、put 在客户端发送给服务端的数据取代指定的内容,也就是修改
4、delete 删除指定的数据或页面
5、options 允许客户端查看和测试服务端的性能

6、conntet http/1.1协议中预留给能够将连接改为管道方式的代理服务
7、trace 回显服务器收到的请求,主要用于测试或诊断
8、head 向服务器与GET请求相一致的响应,响应体不会返回,可以不必传输整个响应内容

中间件的五大方法

1、process_request: 处理请求前:在每个请求上,request对象产生之后,url匹配之前调用,返回None或HttpResponse

2、process_view:处理视图前:在每个请求上,url匹配之后,视图函数调用之前调用,返回None或HttpResponse对象。

3、process_response:处理响应后:视图函数调用之后,所有响应返回浏览器之前被调用,在每个请求上调用,返回HttpResponse对象。

4、process_exception:异常处理:当视图抛出异常时调用,在每个请求上调用。

5、process_template_response:函数是在视图函数执行完后立即执行的,返回一个HttpResponse对象。

应用流程的处理

客户端发送给uwsgi一个http的请求,uwsgi解析报文请求,解析之后发送给服务端,客户端用request接收请求,中间件处理后,再由视图处理业务(数据库,模板,表单)
response再返还给uwsgi构造http响应的报文,返回客户端一个http请求的报文

http张这个样子

在这里插入图片描述

django的工作流程(生命周期)

1.wsgi,请求封装后交给web框架

2.中间件,对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session

3.路由匹配 根据浏览器发送的不同url去匹配不同的视图函数

4.视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染

5.中间件,对响应的数据进行处理。

6.wsgi,将响应的内容发送给浏览器。

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值