2009-06-25 34 views
8

Así que tiene un proyecto Django que acaba de crear la estructura de directorios llamados 'coolprojectsite' se ve algo de la siguiente manera:Django disposición de directorios explicación

* media (dir) 
* mytemplates (dir) 
* * admin (dir) 
* * coolprojects (dir) 
* coolprojectsite (dir) 
* * coolproject (dir) 
* * * __init__.py 
* * * admin.py 
* * * models.py 
* * * tests.py 
* * * urls.py 
* * * views.py 
* * __init__.py 
* * settings.py 
* * urls.py 

así que tengo un par de preguntas.

1) es coolprojectsite considerado el 'proyecto'

2) se considera coolproject la 'aplicación'

3) 'medios' contiene el CSS, archivos JavaScript, etc. es que el lugar adecuado para ellos ? Está fuera del proyecto.

4) 'mytemplates' tiene archivos específicos que contienen marcado de django (por ejemplo, {%%}) y se accede a ellos porque mi urls.py los señala. ¿Es correcto tener estos archivos fuera del proyecto?

5) Si deseo incluir algún archivo javascript arbitrario (por ejemplo, jquery), simplemente creo una nueva entrada en urls.py (si es así, debería ser la de coolprojectsite, o coolproject) y luego enlazo a esa url?

+0

Pregunta. ¿No pondrías los medios/y CSS, etc. arriba de la webroot y todos los demás? – tristanbailey

Respuesta

9
  1. "Proyecto" no es realmente un concepto útil en Django. El tutorial de Django lo menciona, pero los desarrolladores han mencionado con frecuencia en las listas de correo que desearían no haberlo presentado. Básicamente, un proyecto es solo un contenedor para su código, pero de hecho el código puede vivir en cualquier parte de Pythonpath.

  2. Sí, y puede tener varias aplicaciones, siempre y cuando se hayan agregado a INSTALLED_APPS en settings.py.

  3. No importa dónde vivan. Necesitará algo para servirles: en el desarrollo, se puede hacer con el servidor integrado, pero en producción deberá señalar Apache (o lo que sea) directamente en los archivos.

  4. No importa. Son las vistas las que cargan las plantillas, y siempre que TEMPLATE_DIRS esté configurado correctamente en settings.py, eso está bien.

  5. No, absolutamente no. Como se mencionó, los activos estáticos viven en su carpeta multimedia y no se sirven a través de Django.

+6

Personalmente, considero que el "proyecto" es un concepto útil. Después de todo, los proyectos son en lo que generalmente trabajo, ese es el producto. Así que mantengo mi directorio de activos estáticos y mi plantilla en un directorio con archivos de configuración, URLconf raíz, a menudo algunas aplicaciones específicas de proyectos, pongo todo bajo control de versiones y lo llamo "el proyecto". No creo que haya nada de malo en eso. La clave es darse cuenta de que no hay nada "mágico" en Django sobre un determinado directorio, puede organizar las cosas de la manera que mejor se adapte a su flujo de trabajo y hacerlo funcionar. –