2009-10-13 19 views
12

Según the documentation:¿Qué es una "aplicación" en Django?

una aplicación es una aplicación web que hace algo - por ejemplo, un sistema de weblog, una base de datos de los registros públicos o una simple aplicación sondeo. Un proyecto es una colección de configuración y aplicaciones para un sitio web en particular . Un proyecto puede contener múltiples aplicaciones. Una aplicación puede ser en proyectos múltiples.

Sin embargo, ¿qué otros ejemplos de qué hace una "aplicación"?

Respuesta

14

Lo que hace que una aplicación (para nosotros) es una cosa:

Una aplicación es la unidad de reutilización

Si lo que se quiere dividir fuera a utilizar en otro lugar, se trata de una aplicación.

Si tiene un modelo de datos reutilizable, es una aplicación. Perfiles de usuario: aplicación Clientes: aplicación Historial estadístico del cliente (esto es difícil de explicar sin proporcionar demasiados detalles): aplicación. Informes: aplicación Análisis actuarial: aplicación Proveedor API para la recopilación de datos: aplicación.

Si es único y nunca se reutilizará (es decir, específico del cliente) es una aplicación que depende de otras aplicaciones. Las cargas de datos son específicas del cliente. Cada una es una aplicación que se basa en un par de aplicaciones existentes (cargas por lotes e historial estadístico)

+0

Esto tiene sentido, y confirma lo que pensaba. Gracias. –

2

La administración de usuarios bien podría ser una aplicación, si no va a utilizar el marco de usuario integrado de Django.

Tiene interfaces de usuario y modelos definidos para datos almacenados, y está realmente separado del Blog o la aplicación Wiki (aunque la información será compartida).

Siempre que ambas aplicaciones estén en el mismo 'proyecto', deberían usar la misma configuración para la base de datos. Debería poder asegurarse de que se importan los modelos correctos donde intenta usarlos.

Consulte this link para obtener un poco más de información.

+0

bien. los usuarios fueron una mala elección, supongo. ¿Pero puedes compartir datos entre aplicaciones? –

+0

Sí, debería ser capaz de hacerlo. Publicación editada para brindar más información. –

4

Las aplicaciones Django son paquetes de funcionalidad reutilizable. Al comenzar, es fácil simplemente usar una aplicación personalizada para su proyecto, pero la "forma de Django" es dividirla en aplicaciones separadas, cada una de las cuales solo hace una cosa. Puede echar un vistazo a django.contrib para ver ejemplos de aplicaciones reutilizables realmente bien hechas.

Un ejemplo reciente mío: un cliente necesitaba una forma de importar datos CSV a los modelos de Django. La manera más fácil sería simplemente agregar un modelo con un FileField y escribir un analizador rápido para el formato específico de lo que están cargando. Eso funcionaría bien hasta que el formato cambiara y tuviera que hacer coincidir el analizador. Pero esta es una tarea que se repite con frecuencia (importación de datos) y no relacionada con la aplicación existente (administración de esos datos), así que la resolví por sí misma. Esta aplicación conectable puede importar datos para cualquier modelo activo. Ahora, la próxima vez que un cliente necesite una funcionalidad de importación, solo agrego este código a installed_apps y ejecuto syncdb.

Es una llamada de juicio cuando se trata de crear una aplicación, pero la regla de oro para mí es si es probable que vuelva a hacer algo. Me tomaré más tiempo convertirla en una aplicación genérica. Eso significa que he creado algunas aplicaciones pequeñas (algunas solo contienen una etiqueta de plantilla), pero es poca sobrecarga para las ganancias futuras.

Cuestiones relacionadas