Clonando projetos django para estudo.
- #Django
- #Python
Sempre que disponibilizamos ou clonamos um projeto django , seja pelo github ou outras plataformas é importante que sigamos alguns passos para não ter problemas ao rodar a aplicação.
Digo isso após clonar alguns repositórios para estudo e me deparar com alguns problemas:
- falta de arquivos
- documentação inadequada
- um README sem informações para rodar o projeto
- entre outros...
Após muita pesquisa disponho um pouco da experiencia que adquiri através destes problemas:
- Crie um arquivo .gitignore e .env para não enviar arquivos indesejados para o github
- Sempre disponibilize um arquivo requirements.txt com as dependencias do projeto
# descreve todas as dependencias do seu projeto.
pip freeze >requirements.txt
Informe o tipo de banco de dados que utilizou no projeto.
Agora quando fazer um fork ou clonar um projeto em django siga os seguintes passos:
Crie um ambiente virtual com venv ou virtualvenv
# windows
python -m venv venv
# linux
python3 -m venv venv
Ative o ambiente virtual
# windows
venv/Scripts/activate
# linux
source venv/bin/activate -linux
Instale as bibliotecas necessarias para rodar o projeto
pip install -r requirements.txt
O arquivo acima é muito importante pois nele estão contidos todas as dependencias importantes para rodar o projeto sem erros.
Não esqueça de rodar o comando abaixo para que não haja erros no banco de dados:
# windows
python manage.py migrate
# linux
python3 manage.py migrate
Configure seu banco de dados conforme necessário no arquivo settings.py
Abaixo um exemplo de um arquivo requirements.txt :
asgiref==3.5.2
boto3==1.24.68
botocore==1.27.68
dj-database-url==1.0.0
Django==4.1.1
django-environ==0.9.0
django-heroku==0.3.1
django-storages==1.13.1
gunicorn==20.1.0
jmespath==1.0.1
Pillow==9.2.0
psycopg2==2.9.3
psycopg2-binary==2.9.3
python-dateutil==2.8.2
s3transfer==0.6.0
six==1.16.0
sqlparse==0.4.2
tzdata==2022.2
urllib3==1.26.12
whitenoise==6.2.0
O arquivo acima pode variar de acordo com o projeto.
Isso é apenas uma pequena parcela dos problemas que nos deparamos quando trabalhamos com projetos de terceiros e se já passou por alguma dificuldade comenta aí ou faça um artigo à respeito. Ficarei feliz em ler.
Outro aviso importante:
É muito importante saber interpretar o arquivo settings.py e suas configurações.
As vezes será preciso gerar uma nova chave SECRET_KEY em settings.py.
Mas isso é tema para outro artigo.
Este artigo é baseado em uma experiencia pessoal e indicado para iniciantes em django.
Pode haver outras soluções mais eficientes e se alguem souber pode avisar nos comentários.
Grato por sua leitura.
Obrigado.