1. 什么是请求的生命周期

当用户在浏览器上输入URL敲击回车访问,我们视为一次请求,生命周期就是Django服务器接收到这个请求后,在后台处理并返回响应的整个过程。

简单来说就是用户从输入URL到浏览器显示网页的这个时间段内,Django后台做了哪些事情。

2. Django的请求生命周期过程

2.1 过程图示

2.2 过程描述

  1. 用户浏览器输入网址,发起请求。

  2. WSGI(Web Server Gateway Interface)创建socket服务端,接收请求(HttpRequest)。

  3. 中间件(MiddleWare)按顺序依次处理请求(process_request)。

  4. 路由系统(urls.py)根据请求头(request_header)中的path进行匹配,根据url找到对应的视图函数

  5. 视图函数(views.py)接收request对象并进行业务处理:

  6. ORM(Object Relational Mapping,对象关系映射)负责处理数据持久化,从数据库中读取数据返回给视图,或将用户传入数据写入数据库。

  7. 视图函数将数据渲染到Templates模板,返回响应数据

  8. 中间件按逆序依次处理响应(process_response)

  9. WSGI返回响应(HttpResponse)

  10. 用户浏览器接收响应并渲染出页面