2010-11-24 13 views
13

así que he estado jugando un poco con django y realmente me gusta este framework. Sin embargo, me gustaría entender mejor cómo funciona realmente 'debajo de las sábanas'.¿Cómo puedo averiguar mejor cómo funciona django internamente?

Aquí es mi visión actual del mundo cliente-servidor-Django, que es muy duro y probablemente hará que sus uñas de los pies rizo (lo siento) ...

  1. El navegador envía una petición HTTP al servidor.
  2. El servidor hace su magia y vuelca la solicitud a través del CGI a django (?)
  3. Alguna parte de django (¿qué?) Recibe la solicitud y la convierte en un objeto de solicitud django.
  4. El objeto de solicitud deambula por algunos caminos nebulosos a través del middleware que hace cosas extrañas con él.
  5. El objeto de solicitud finalmente termina en alguna función (¿cuál?) Que mira las URL, elimina los patrones de urls.py y llama a una función de vista.
  6. Las funciones de vista hacen su magia (con modelos y plantillas como socios en el vicio), es aquí donde tengo la mayor ilusión de comprensión (bueno, aparte de la abstracción de la base de datos mágica, es decir;
  7. Las funciones de vista devuelven un objeto HttpResponse, supongo que esto se devuelve en algunas rutas nebulosas al CGI.
  8. El servidor web toma el control nuevamente y envía la respuesta HTTP al cliente.

Bien, entonces ¿qué diablos es mi pregunta? Bueno, ¿cómo funciona todo esto realmente? No estoy esperando que me cuchara alimenta todo ... Sospecho que la respuesta será en última instancia a "leer la fuente, Lucas", sin embargo, yo agradecería

  1. Usted podría aclarar mis ingresos brutos misconsepciones
  2. dime por dónde empezar? Lo que me gustaría hacer es dibujar un depurador y simplemente recorrer el proceso un par de veces, pero realmente no sé por dónde empezar.
  3. me podría indicar cualquier documento que lo explique bien ... sí , He oído hablar de esta cosa de Google, pero realmente no he encontrado nada súper útil.

muchas gracias Paul

Respuesta

6

Mira el tutorial de James Bennett Django in Depth de Pycon 2015.

Desde el Pycon website, aquí está el resumen de James charla:

mayoría de los libros, tutoriales y otra documentación de Django toman un enfoque de alto nivel a sus componentes y APIs, y así apenas arañar la superficie de el marco. En este tutorial, sin embargo, daremos un vistazo detallado bajo el capó, cubriendo todo, desde las entrañas del ORM hasta las entrañas del sistema de plantillas, hasta cómo funciona realmente la interfaz de administración.

Tanto si eres el más nuevo de los novatos o el desarrollador de aplicaciones más experimentado, obtendrás un conocimiento más profundo de Django, y una gran cantidad de nuevos consejos y trucos que puedes utilizar en tus propias aplicaciones.

+3

Actualmente no existe otro seminal tan extenso y profundo como DiD. Bennett ejecutó un clavo en cada característica de Django. Aquí están las diapositivas (1025 de ellas) de la presentación http://www.slideshare.net/ubernostrum/django-in-depth. –

+0

¡Gracias por el enlace a las diapositivas KRON! Me asusté un poco cuando leí 1025, pero parece que está contando todas las superposiciones, así que creo que puedo revisarlas en una noche;) – Paul

+0

El primer enlace no funciona (Django en profundidad) –

11

Bueno, su primera idea errónea es que CGI tiene nada que ver con esto. No es así, excepto en las configuraciones de servidor poco probables y poco utilizadas.

Principalmente, Django se conecta con el servidor a través de WSGI, que es una especificación de Python para que los servidores web hablen a las aplicaciones web. Puede ver más información en el WSGI website.

Aparte de eso, todo el ciclo de solicitud/respuesta está muy bien descrito por James Bennett in his blog entry here. Es bastante viejo, pero poco ha cambiado en Django en ese nivel desde que fue escrito.

+0

¡Hola, gracias por los dos artículos, muy útiles! Actualmente estoy mirando el de "James Bennett" ... Entonces WSGI es una especie de CGI (bueno, supongo que lo averiguaré leyendo)) ¡Gracias! – Paul

Cuestiones relacionadas