Melhores práticas para uma estrutura de diretório de trabalho Django

Vaibhav Vaibhav 29 junho 2021
Melhores práticas para uma estrutura de diretório de trabalho Django

Django é uma fantástica estrutura de desenvolvimento da web de código aberto baseada em Python que você pode usar para criar aplicativos da web full-stack. Por ser um framework, pode-se esperar inicialmente muitos arquivos dentro dos projetos. Pode ser muito difícil para um iniciante no início, mas não há nada com que se preocupar; tudo parecerá simples com o tempo.

Um aplicativo da web tem dois lados: desenvolvimento e produção. O lado do desenvolvimento tem configurações diferentes em comparação com o lado da produção. Os aplicativos Django têm muitas pastas como static, media, templates, etc. Como o Django já existe há algum tempo, você precisa conhecer as melhores práticas para uma estrutura de diretório de trabalho do Django para projetos mais bem-sucedidos neste área. Falaremos sobre esses métodos aqui no artigo, então continue lendo!

Estrutura de Diretório Django

A estrutura de diretório de um projeto Django deve ser semelhante a esta:

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

Django Root Folder

A pasta raiz, Project Folder, contém projetos Django e todos os outros arquivos relacionados ao projeto, como a license, README, environment, requirements.txt, .gitignore, e Documentation or Docs.

Django Project Folder

Dentro do projeto Django, MyProject, deve haver o arquivo manage.py, a pasta media, a pasta MyProject que contém o arquivo settings.py e os aplicativos Django.

Pasta de configurações do projeto Django

Por padrão, Django nos fornece um único arquivo settings.py e alguns outros arquivos importantes, como o urls.py, wsgi.py, etc. O arquivo settings.py contém configurações para produção e desenvolvimento. Conseqüentemente, ele pode crescer em comprimento para um projeto mais significativo.

Portanto, dividir as configurações em seus respectivos arquivos é uma ótima idéia. O arquivo base.py contém as configurações que se aplicam ao desenvolvimento e à produção. O arquivo development.py contém todas as configurações aplicáveis ​​para o desenvolvimento, e o production.py contém todas as configurações de produção.

Os lados de desenvolvimento e produção podem ter diferentes configurações de banco de dados, configurações de validação de senha, configurações de e-mail, configurações de pagamento, chaves de API e outras configurações.

Se você estiver usando Python Decouple para armazenar dados confidenciais, o arquivo .env também deve estar nesta pasta.

Aplicativos Django

Cada aplicativo Django terá uma pasta static e uma pasta templates. Dentro dessas pastas, haverá outra pasta com o nome do aplicativo. Dentro dessas pastas, colocaremos todos os arquivos e modelos estáticos.

Essa abordagem nos permite ter vários arquivos com o mesmo nome. Por exemplo, cada aplicativo pode ter um arquivo index.html e um style.css, e será mais fácil acessá-los.

----------
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.