Executando verificação de segurança...
1

Estrutura de pastas no Django

Boa noite!

Estou desenvolvendo um projeto em Django e me deparei com uma dúvida em relação à organização da estrutura de pastas. Atualmente, meu projeto está estruturado da seguinte forma:

django-project/
├── .venv/                  # Ambiente virtual do Python
├── customers/              # Aplicativo relacionado aos clientes
├── setup/                  # Configurações do projeto Django
│   ├── asgi.py             # Configuração ASGI para o Django
│   ├── settings.py         # Configurações principais do Django
│   ├── urls.py             # Arquivo de rotas do projeto
│   └── wsgi.py             # Configuração WSGI para o Django
├── tasks/                  # Aplicativo relacionado às tarefas
├── templates/              # Templates HTML do projeto
├── users/                  # Aplicativo relacionado aos usuários
├── .env                    # Configuração de variáveis de ambiente
├── .env.example            # Exemplo das variáveis de ambiente
├── .gitignore              # Arquivos ignorados pelo Git
├── .pre-commit-config.yaml # Configuração do pre-commit
├── .pylintrc               # Configuração do Pylint
├── backup_postgres.py      # Script para backup do PostgreSQL
├── backup_sqlite.py        # Script para backup do SQLite
├── db.sqlite3              # Banco de dados SQLite
├── LICENSE                 # Licença do projeto
├── manage.py               # Ferramenta de linha de comando do Django
├── README.md               # Documentação do projeto
└── requirements.txt        # Dependências do projeto

Gostaria de saber se essa estrutura de pastas é realmente a mais recomendada. Notei que, ao seguir essa abordagem, tenho que criar um novo app para cada entidade que precise de modelos, o que acaba resultando em muitos aplicativos no projeto. Por outro lado, não gostaria de concentrar todos os modelos em um único app, pois temo que isso deixe o projeto menos organizado.

Vocês têm sugestões para uma estrutura de pastas mais limpa e escalável? Agradeço qualquer orientação!

Carregando publicação patrocinada...
3

Acho assim, cada um tem sua maneira de montar seu próprio projeto, segundo o Felipe Dechamps no curso, tem um carinha americano que ganha milhões com um único site que criou em um unico arquivo PHP.
Então creio eu que isso deva ser algo de como você acha mais organizado, você deve evitar over engineering a todo custo, e sempre fazer reformulação na esturura e no código.
Separar as coisas de acordo com o que ela demanda.

.
└── root/
    ├── apps/
    │   ├── accounts/
    │   │   ├── templates/
    │   │   └── api/
    │   │       └── v1/
    │   ├── core/
    │   │   ├── templates/
    │   │   └── api/
    │   │       └── v1/
    │   ├── router.py
    │   └── utils.py
    ├── backend/
    │   └── settings/
    │       ├── utils/
    │       │   └── buckets.py
    │       ├── base.py
    │       ├── production.py
    │       └── local.py
    ├── infra/
    │   ├── config/
    │   │   └── nginx/
    │   │       ├── Dockerfile
    │   │       └── nginx.conf
    │   ├── minio/
    │   │   └── compose.minio.yaml
    │   ├── Dockefile
    │   ├── compose.local.yaml
    │   └── compose.prod.yaml
    ├── frontend/
    │   ├── tailwind.config.js
    │   └── global.css
    ├── tests/
    │   └── integrations/api    
    ├── templates/
    ├── statics/
    │   ├── css/
    │   ├── js/
    │   └── imgs/
    ├── manage.py
    ├── .pre-commit-config.yaml
    ├── .gitignore
    ├── .env
    ├── .env.local
    └── pyproject.toml