一张图读懂 Django Web请求处理的完整流程

为什么学习 Django 框架

Djiango 是 Python生态中最流行的 Web 应用全栈开发框架,其采用 MVT 架构,提供了ORM数据访问功能,强大的Admin管理后台,完善的用户与权限管理系统等功能,非常适合中型、小型Web应用类项目的开发。

一张图讲清楚 Django 的基本流程

Django官方文档相当冗长,很多章节没有翻译成中文 ,初学者很难对django 的基本流程的全貌有1个清晰的认识。现在笔者尝试用一张图来说明 Django 处理 http Request请求消息的流程,这也是Django 框架的基础结构,理解了这个流程,对于理解 django 非常有帮助。

在这里插入图片描述

流程说明

  1. 用户浏览器发起http请求
  2. 请求首先到达 Request Middleware 中间件,它能在views 收到请求前对Request消息内容进行处理,发送响应。
  3. urls.py 中的 URLConf 对收到请求的url进行匹配,找到相应的视图处理函数或视图类
  4. 在View收到请求之前,View Middlewares 被调用, 可以进行一些预处理。
  5. 视图函数或视图类被调用
  6. 视图函数可能访问模型数据,也可能调用 form 生成表单对象。
  7. 所有 model-to-DB 的交互都通过 manager 对象来完成
  8. Views 可通以通过context 对象来添加更多传给模板的内容,
  9. Views 将 context 上下文数据传给模板进行渲染
  10. 模板层使用 Filter与 Tags 渲染输出
  11. 模板层将渲染结果 传回给 视图层
  12. 视图层发送HTTPResponse 给Response Middlerwares 中间件
  13. Response middlewares中间件可以向 Response 消息添加额外内容,或者用1个新消息替代
  14. wsgi 网关发送 response 给用户浏览器

关于 http 消息的理解,请参考文章 使用 python requests 模块发送 http 请求及接收响应


希望这张图,能对django初学者有所帮助,也希望有经验的开发者对不正确的地方提出意见。


版权声明:本文为captain5339原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。