注:以下内容转载自 现代魔法学院 网站的 Django框架架构总览 一文,仅供学习使用。
Django 架构总览
如下图所示 django 的架构总览图,整体上把握以下 django 的组成:
核心在于 middleware(中间件),django 所有的请求、返回都由中间件来完成。
中间件,就是处理 HTTP 的 request 和 response 的,类似插件,比如有 Request 中间件、view 中间件、response 中间件、exception 中间件等,Middleware 都需要在 “project/settings.py” 中 MIDDLEWARE_CLASSES 的定义。大致的程序流程图如下所示:
首先,Middleware 都需要在 “project/settings.py” 中 MIDDLEWARE_CLASSES 的定义, 一个 HTTP 请求,将被这里指定的中间件从头到尾处理一遍,暂且称这些需要挨个处理的中间件为处理链,如果链中某个处理器处理后没有返回 response,就把请求传递给下一个处理器;如果链中某个处理器返回了 response,直接跳出处理链由 response 中间件处理后返回给客户端,可以称之为短路处理。
一般我们在编写 view 层函数的时候,都以 return response 或者 return HttpResponse(x) 结尾。现在你知道为什么要 return 了吧?