Simplemente leyendo la fuente puede ser un poco abrumador, especialmente porque la parte superior es un poco confusa (cómo el servidor web pasa la solicitud al código Django). Me parece una buena manera de empezar la lectura del código es establecer un punto de interrupción de depuración en su función de vista:
def time(request):
import pdb; pdb.set_trace()
return HttpResponse(blah blah)
después haga clic en su URL. Cuando se rompe el depurador en el punto de interrupción, examinan la pila:
(Pdb) where
c:\abcxyzproject\django\core\management\commands\runserver.py(60)inner_run()
-> run(addr, int(port), handler)
c:\abcxyzproject\django\core\servers\basehttp.py(698)run()
-> httpd.serve_forever()
c:\python25\lib\socketserver.py(201)serve_forever()
-> self.handle_request()
c:\python25\lib\socketserver.py(222)handle_request()
-> self.process_request(request, client_address)
c:\python25\lib\socketserver.py(241)process_request()
-> self.finish_request(request, client_address)
c:\python25\lib\socketserver.py(254)finish_request()
-> self.RequestHandlerClass(request, client_address, self)
c:\abcxyzproject\django\core\servers\basehttp.py(560)__init__()
-> BaseHTTPRequestHandler.__init__(self, *args, **kwargs)
c:\python25\lib\socketserver.py(522)__init__()
-> self.handle()
c:\abcxyzproject\django\core\servers\basehttp.py(605)handle()
-> handler.run(self.server.get_app())
c:\abcxyzproject\django\core\servers\basehttp.py(279)run()
-> self.result = application(self.environ, self.start_response)
c:\abcxyzproject\django\core\servers\basehttp.py(651)__call__()
-> return self.application(environ, start_response)
c:\abcxyzproject\django\core\handlers\wsgi.py(241)__call__()
-> response = self.get_response(request)
c:\abcxyzproject\django\core\handlers\base.py(92)get_response()
-> response = callback(request, *callback_args, **callback_kwargs)
> c:\abcxyzproject\abcxyz\helpers\views.py(118)time()
-> return HttpResponse(
(Pdb)
ahora se puede ver un resumen de la trayectoria de la parte más profunda del servidor web a su función de vista. Use el comando "arriba" para subir la pila, y los comandos "lista" e "imprimir" para examinar el código y las variables en esos cuadros de pila.
Cuando miraste la fuente, ¿qué viste? –