Django执行流程

一. django流程介绍

  mvc是众所周知的模式, 即 将应用程序分解成三个部分: model(模型), view(视图), controller(控制器),其中:

  M -- 管理应用程序的状态(通常存储到数据库中), 并约束改变状态的行为(或者叫业务规则)

  C -- 接受外部用户的操作, 根据操作访问模型获取数据, 并调用"视图"显示这些数据,, 控制器是将"模型"和"视图"隔离, 并成为两者之间的联系纽带

  V -- 负责把数据格式化之后呈现给用户

  Django也是一个MVC框架, 只是在Django中, 控制器接受用户输入的部分由框架自行处理, 所以Django更关注的是模型, 模板和视图. 称为MTV模式.

  M --负责业务对象和数据库的关系映射(ORM)

     T -- 负责如何把页面展示给用户(html)

   v -- 负责业务逻辑, 并在适当时候调用Model和Template

  除了上述三层以外, 还需要一个URL分发器, 他的作用是将一个个URL的页面请求分发给不同的View处理,View再调用相应的Model和Template

执行步骤::

  1. 用户通过浏览器请求一个页面

  2. 请求到达Request Middlewares, 中间件对request做一些预处理或者直接response请求

  3. URLConf通过urls.py文件和请求的URL找到对应的View

  4. View Middleware被访问, 它同样可以对request做一些预处理或者直接返回response

  5. 调用View中的函数

  6. View中的方法可以选择的通过Models访问底层的数据

  7. 所有的Model-to-DB的交互都是通过manager完成的

  8. 如果需要, Views可以使用一个特殊的Context

  9, Context被传给Template用来生成页面

  a. Template使用Filters和Tags去渲染输出

  b. 输出被返回到View

  c. HTTPResponse被发送到Response Middlewares

  d. 任何Response Middleware偶可以丰富response或者返回一个完全不同的response

  e. Response返回到浏览器, 呈现给用户

原文地址:https://www.cnblogs.com/guyannanfei/p/10446496.html