El libro de Django 1.0

5.4. Tu primera aplicación

Ahora que verificamos que la conexión está funcionando, es hora de crear una Aplicación de Django — una colección de archivos de código fuente, incluyendo modelos y vistas, que conviven en un solo paquete de Python y representen una aplicación completa de Django.

Vale la pena explicar la terminología aquí, porque esto es algo que suele hacer tropezar a los principiantes. Ya hemos creado un proyecto, en el Capítulo 2, entonces, ¿cuál es la diferencia entre un proyecto y una aplicación? La diferencia es la que existe entre la configuración y el código:

  • Un proyecto es una instancia de un cierto conjunto de aplicaciones de Django, más las configuraciones de esas aplicaciones.
Técnicamente, el único requerimiento de un proyecto es que este
suministre un archivo de configuración, el cual define la información
hacia la conexión a la base de datos, la lista de las aplicaciones
instaladas, la variable `TEMPLATE_DIRS`, y así sucesivamente.
  • Una aplicación es un conjunto portable de una funcionalidad de Django, típicamente incluye modelos y vistas, que conviven en un solo paquete de Python.
Por ejemplo, Django incluye un número de aplicaciones, tales como un
sistema de comentarios y una interfaz de administración automática. Una
cosa clave para notar sobre estas aplicaciones es que son portables y
reusables en múltiples proyectos.

Hay pocas reglas estrictas sobre cómo encajar el código Django en este esquema; es flexible. Si estás construyendo un sitio web simple, quizás uses una sola aplicación. Si estás construyendo un sitio web complejo con varias piezas que no se relacionan entre sí, tales como un sistema de comercio electrónico o un foro, probablemente quieras dividir esto en aplicaciones para que te sea posible reusar estas individualmente en un futuro.

Es más, no necesariamente debes crear aplicaciones en absoluto, como lo hace evidente la función de la vista del ejemplo que creamos antes en este libro.
En estos casos, simplemente creamos un archivo llamado views.py, llenamos este con una función de vista, y apuntamos nuestra URLconf a esa función. No se necesitan "aplicaciones".

No obstante, existe un requisito respecto a la convención de la aplicación: si estás usando la capa de base de datos de Django (modelos), debes crear una aplicación de Django. Los modelos deben vivir dentro de aplicaciones.

Dentro del directorio del proyecto mysite que creaste en el Capítulo 2, escribe este comando para crear una nueva aplicación llamada books:

python manage.py startapp books

Este comando no produce ninguna salida, pero crea un directorio books dentro del directorio mysite. Echemos un vistazo al contenido:

books/
    __init__.py
    models.py
    views.py

Esos archivos contendrán los modelos y las vistas para esta aplicación.

Echa un vistazo a models.py y views.py en tu editor de texto favorito. Ambos archivos están vacíos, excepto por la importación en models.py. Este es el espacio disponible para ser creativo con tu aplicación de Django.