一个请求在 Django 中的处理流程

本文详细阐述了一个HTTP请求在Django中的处理流程,从浏览器发起请求到DNS解析,通过WSGI,经过中间件,URL映射,视图处理,模板渲染,异常处理,再到响应客户端,最终关闭连接。同时介绍了Django启动时加载settings.py配置,以及URLConf的匹配机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个请求在 Django 中的处理流程:

浏览器
| 构建 HTTP 请求报文
| User Request: http://swiper.cn/api/user/show
v
域名解析
| swiper.cn -> 11.22.33.44
v
向服务器建立网络连接: TCP 3 次握手

^
|
v

HTTP Server
| 1. 与客户端建立连接
| 2. 接收客户端数据
v
WSGI (Web Server Gateway Interface)
| 将 “HTTP 请求报文” 封装成 HttpRequest 对象
|--------------------------------------> process_request (中间件)
v
Django 进行 URL 映射, 匹配到一个视图函数
|
|--------------------------------------> process_view (中间件)
v
View 视图处理
| | 1. 参数处理
| | 2. 逻辑处理
| | 3. 数据处理
| | 4. 模板渲染 ----------------------> process_template (中间件)
| | 5. 将结果封装成 HttpResponse 对象
| |
| ------------------------------------> process_exception (中间件,捕获视图函数的异常,1-5过程有任何异常就跳过来)
|
|--------------------------------------> process_response (中间件)
v
WSGI
| 将 HttpResponse 对象封装成 “HTTP 响应报文”
v
HTTP Server
| 1. 将 “HTTP 响应报文” 发送给客户端
| 2. 断开与客户端的连接 (四次挥手)
v
浏览器

django 的工作机制:
1.用manage.py runserver 启动Django服务器时就载入了在同一目录下的settings.py。该文件包含了项目中的配置信息,如URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Django哪个Python模块应该用作本站的URLConf,默认的是urls.py
2.当访问url的时候,Django会根据ROOT_URLCONF的设置来装载URLConf。
3.然后按顺序逐个匹配URLConf里的urlpatterns。如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)
4.最后该view函数负责返回一个HttpResponse对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值