转自: http://uswaretech.com/blog/2009/06/django-request-response-processing/
转张图,有助于理解整个流程 :D
Have you wondered the steps a users request goes through before being responded to by Django? The answer lies in reading django.core.handlers.base
and django.core.handlers.wsgi
. Here is a diagram explaining what happens. (Click to enlarge.)
The steps are.(With Apache/Mod_wsgi, similar steps for other setup.)
- User’s request comes to Apache etc.
- Apache sends request to
django.core.handlers.wsgi
viamod_wsgi
. - A list of request and response middleware callables is created.
- Request middleware is applied. If it sends a response, it is returned to the user.
urlresolvers.resolve
finds the view funcion to use.- View middleware is applied. If response comes, it is sent back to the user.
- View function is called. It talks to models to do business logic, and renders the templates.
- The response middleware is applied, and response is sent back to the users.
This misses a lot of important steps (Exception middleware, request_context populating, …) but is a basic high level overview.