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返回到浏览器, 呈现给用户