Mejores prácticas para una estructura de directorio de trabajo de Django

Vaibhav Vaibhav 20 marzo 2022
Mejores prácticas para una estructura de directorio de trabajo de Django

Django es un fantástico marco de desarrollo web de código abierto basado en Python que puede utilizar para crear aplicaciones web de pila completa. Dado que es un marco, inicialmente se pueden esperar muchos archivos dentro de los proyectos. Puede ser demasiado abrumador para un principiante al principio, pero no hay nada de qué preocuparse; todo parecerá sencillo con el tiempo.

Una aplicación web tiene dos caras: desarrollo y producción. El lado de desarrollo tiene diferentes configuraciones en comparación con el lado de producción. Las aplicaciones de Django tienen muchas carpetas como static, medios, plantillas, etc. Dado que Django existe desde hace un tiempo, necesita conocer las mejores prácticas para una estructura de directorio de trabajo de Django para proyectos más exitosos en área. Hablaremos sobre estos métodos aquí en el artículo, ¡así que sigue leyendo!

Estructura del directorio de Django

La estructura de directorios de un proyecto de Django debería verse así:

Project Folder/
    .gitignore    
    LICENSE.rst or LICENSE.md
    Documentation/
    README.rst or README.md
    environment
    requirements.txt
    MyProject/
        manage.py
        media/
        MyProject/
            __init__.py
            settings/
                __init__.py
                base.py
                development.py
                production.py
                .env
            urls.py
            wsgi.py
        AppOne/
            static/
                AppOne/
            templates/
                AppOne/
            urls.py
            views.py
            models.py
        AppTwo/
            static/
                AppTwo/
            templates/
                AppTwo/
            urls.py
            views.py
            models.py
        AppThree/
            static/
                AppThree/
            templates/
                AppThree/
            urls.py
            views.py
            models.py

Carpeta raíz de Django

La carpeta raíz, Carpeta del proyecto, contiene los proyectos de Django y todos los demás archivos relacionados con el proyecto, como la licencia, README, entorno, requisitos.txt, .gitignore y Documentación o Docs.

Carpeta del proyecto Django

Dentro del proyecto Django, MyProject, debería estar el archivo manage.py, la carpeta media, la carpeta MyProject que contiene el archivo settings.py y las aplicaciones Django.

Carpeta de configuración del proyecto Django

Por defecto, Django nos proporciona un único archivo settings.py y algunos otros archivos importantes como urls.py, wsgi.py, etc. El archivo settings.py contiene configuraciones tanto para producción como para desarrollo. Por lo tanto, puede crecer en longitud para un proyecto más significativo.

Por lo tanto, dividir la configuración en sus respectivos archivos es una gran idea. El archivo base.py contiene la configuración que se aplica tanto al desarrollo como a la producción. El archivo development.py contiene todas las configuraciones aplicables para el desarrollo, y production.py tiene todas las configuraciones de producción.

Los lados de desarrollo y producción pueden tener diferentes configuraciones de base de datos, configuraciones de validación de contraseñas, configuraciones de correo electrónico, configuraciones de pago, claves API y otras configuraciones.

Si está utilizando Python Desacoplamiento para almacenar datos confidenciales, el archivo .env también debería estar en esta carpeta.

Aplicaciones de Django

Cada aplicación Django tendrá una carpeta static y una carpeta plantillas. Dentro de estas carpetas, habrá otra carpeta con el nombre de la aplicación. Dentro de estas carpetas, colocaremos todos los archivos y plantillas estáticos.

Este enfoque nos permite tener varios archivos con el mismo nombre. Por ejemplo, cada aplicación puede tener un archivo index.html y un style.css, y será más fácil acceder a ellos.

----------
HTML Files
----------
{% url 'AppOne/index.html' %}
{% url 'AppTwo/index.html' %}
{% url 'AppThree/index.html' %}

---------
CSS Files
---------
{% static 'AppOne/style.css' %}
{% static 'AppTwo/style.css' %}
{% static 'AppThree/style.css' %}
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.