摘要:
get_response 做的第一件事就是遍历处理器的 _request_middleware 实例变量并调用其中的每一个方法,传入 HttpRequest 的实例作为参数。 这些方法可以选择短路剩下的处理并立即让 get_response 返回,通过返回自身的一个值(如果它们这样做,返回值必须是 阅读全文
摘要:
首先发生的是一些和 Django 有关(前期准备)的其他事情,分别是: 如果是 Apache/mod_python 提供服务,request 由 mod_python 创建的 django.core.handlers.modpython.ModPythonHandler 实例传递给 Django。 阅读全文
摘要:
Django 和其他 Web 框架的 HTTP 处理的流程大致相同,Django 处理一个 Request 的过程是首先通过中间件,然后再通过默认的 URL 方式进行的。我们可以在 Middleware 这个地方把所有 Request 拦截住,用我们自己的方式完成处理以后直接返回 Response。 阅读全文
摘要:
使用通用视图后,Django请求处理过程(以ListView为例):在我们自定义的视图中: ListView的定义: View中as_view方法: dispatch方法: dispatch方法中根据http请求的method得到handler的值(get,post...),接着调用handler方 阅读全文
摘要:
Django中由wsgi模块接管http请求,核心处理方法为get_wsgi_application,其定义如下: WSGIHandler(代码有节减): 从代码中可以看到,当WSGIHandler对象被调用的时候,首先会判断请求中间件是否为None,如果为None,则通过self.load_mid 阅读全文