Django es el entorno de desarrollo web para perfeccionistas con límites de tiempo

Convenciones de proyecto en Django

Django ofrece una flexibilidad muy grande a la hora de configurar nuestros proyectos permitiéndonos organizarlos con estructuras muy diversas. Esta flexibilidad permite que podamos adaptar Django a necesidades concretas pero por otro lado hace que mucha gente se pregunte cuál es la manera correcta de organizar la estructura de sus proyectos. Convenciones en Django, creado por Eric Holscher, pretende ser un punto de referencia sobre las mejores prácticas y convenciones en Django. Esto es una traducción al español de las convenciones sobre proyectos.

Qué es un proyecto

Un proyecto en Django es una estructura simple que contiene un archivo de configuración (settings), urls, y una colección de aplicaciones Django. Éstas pueden ser aplicaciones escritas por ti mismo o aplicaciones de terceros que has decidido incluir en tu proyecto.

Configuración

  • Situado en PROYECTO/settings.py
  • Si estás utilizando un mecanismo de importación, por favor, utiliza from local_settings import * en la parte inferior de tu archivo settings.py

URLs

  • Situado en PROYECTO/urls.py
  • Debería contener la menor cantidad posible de lógica. Generalmente sólo debería apuntar a cada una de las configuraciones de urls (URLConfs) de tus aplicaciones específicas.

Estructura de proyecto propuesta

ejemplo.com/
    local_apps/
        Aplicaciones propias escritas para este proyecto (preferiblemente reusables, probablemente en tu PYTHONPATH)
    external_apps/
         Aplicaciones externas reusables que estás utilizando en este proyecto
         Nota: Estas aplicaciones también pueden estar en cualquier lugar en tu PYTHONPATH
    projects/
        dev_example/
        production_example/
        django96_example/
            manage.py, settings, urls, etc.
     docs/
        Aquí debe ir toda la documentación de tu proyecto
    static/
        - En producción esto estará en la raíz de tu MEDIA_URL
        css/
        js/
        images/
    tests/
        - Tests a nivel de proyecto (cada aplicación también debería tener tests)
    uploads/
        - Contiene imágenes, etc.
    templates/
        - Este area se utiliza para sobreescribir plantillas de tus aplicaciones reusables
        flatpages/
        comments/
        example/
        app1/
        app2/

Publicado por Antonio Melé el Tuesday 10 de March de 2009 | Categorías: convenciones

Entradas similares

Convenciones de aplicaciones reusables en Django

Este post es una traducción al español de Django reusable apps conventions, escrito por Eric Holscher. Trata de servir como punto de referencia sobre las mejores prácticas y convenciones en Django. También te pueden interesar las convenciones de proyecto en ...


1 comentario:

El Wednesday 11 de March de 2009 Camilo Nova dijo:

Reconozco que al principio ubicaba las cosas en cualquier lugar, pero luego de utilizar las convenciones se ha hecho mas facil el trabajo de reutilizar codigo para otros proyectos, en definitiva, hay que apegarse a los estandares

Escribe un comentario: