python 高级码农成才之路

关于Django的服务器和协议

2021-03-13  本文已影响0人  幼姿沫

1.django的生命周期

1.uWsgi服务器通过WSGI协议,将HTTPRequest请求交给WEB框架*Django/Flask*

2.request中间件对请求对象经过校验或者添加数据,*csrf/request.session*,

如果request请求通不过校验的话,直接将请求传递给respose中间件

3.通过url路由分发传输到urls.py中对路由控制是匹配正则表达式

4.根据浏览器发送的url根据视图中间件的匹配规则去匹配不同的视图函数或者视图类。

如果没有找到相对应的视图函数就返回response

5.在Views视图函数或者视图类中进行业务逻辑处理,处理完成之后返回到response中间件

6.Models模型类 数据库的orm对象关系映射获取数据库数据,并且返回序列化json或者渲染好的templates到response中间件

7.所有最后离开的响应都会到达response中间件,对响应的数据进行处理。返回给HttpResponse的wsgi

8.wsgi经过uWsgi服务器,将响应的内容发送给浏览器。

2.django生命周期流程走向

uwsgi***wsgi  ----->  HttpRequest------>Web框架

request中间件   -------   >  校验请求对象/添加数据

url   -------- >   urls.py文件   -----   >   根据浏览器的url    -------->   通过视图中间件来匹配视图函数   --------->   response中间件

views视图中处理完相关业务   -------- >   request中间件

models模板 数据库  --------  >ORM对象关系映射   --------->   返回json/渲染完成的template到response中间件

所有离开的响应到达response中间件 ---------------->  HttpResponse/wsgi

wsgi经过uWsgi服务器,将响应的内容发送给浏览器

3.什么是WSGI?

python web gateway interface  web服务器网关接口是python定义的web应用程序和框架之间的一种简单而通用的接口。他是python为了解决web服务器与客户端之间的通信问题而产生的。他是基于现存的CGI标准而设计的。它定义了web服务器如何与python程序进行交互,让python写的web应用程序可以和web服务器进行对接起来。

4.uwsgi和uWsgi以及Wsgi和Nginx的区别

uwsgi是uWsgi服务器实现独有的协议,用于Nginx服务与uWsgi的通信规范

uWsgi是一个web服务器,实现了uwsgi/WSGI/HTTP的协议,用来接收Nginx转发的动态请求,处理后发个python应用程序

wsgi就是一个协议实现浏览器和客户端之间的通信,用在web框架*django/flask*编写的应用程序和web服务器之间的规范

5.Django的HttpRequest请求是在什么时候创建的?

Django框架在接收到http请求之后会根据http请求携带的参数以及报文信息创建一个WSGIRequest对象,

并且作为视图函数第一个参数传给视图函数,也就是我们所说的request参数,在这个对象上我们可以找到客户端传来的所有信息

6.中间件的简介以及作用

middleware  中间件是一个用来处理django框架的请求响应钩子,

它是一个轻量级的低级别的插件系统,用于在全局范围内改变django的输入输出,

每个中间组件都会负责有特定的功能。

7.列举django中间件的五个方法

以及django中间件的应用场景

请求      process_request 请求进来时,权限认证

视图函数  process_view    路由匹配之后的视图函数

模板      process_templates_response process  模板渲染时执行

异常      process_exception  异常时执行

响应      process_response    请求有响应式执行

上一篇 下一篇

猜你喜欢

热点阅读