Article image
Ronaldo Schmidt
Ronaldo Schmidt29/01/2024 12:29
Compartilhe

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. 

Compartilhe
Comentários (3)
Venelouis Palhano
Venelouis Palhano - 29/01/2024 19:59

Obrigado pela resposta, é isso ai! Essa porra é engenharia reversa msmo kkk... chatgpt em django pode atrapalhar mais do que ajudar a configurar cada app e paǵina e etc..kk

Mas realmente como vc falou, muita prática, acho que praticar muito é chave pra tentar encaixar qualquer coisa na vida, e procurar respostas com o pessoal que busca viver disso pode ajudar. Vlw!

Venelouis Palhano
Venelouis Palhano - 29/01/2024 17:12

Opa muito legal ler seu artigo, estou iniciando meu aprendizando em Django, achei bem complicado saber e entender tantas funções e coisas que nem parecem python, {% qualquercoisa%}, voltei a estudar python pra tentar entender melhor classes, metodos, funções e etc...

O Django está na versão 5, mas a maioria dos projetos acho ainda q usam django2,3 e 4... por isso o venv e o requirements.txt são extremamente importantes, sua ideia de aprender com eles é muito interessante, um site com vários projetos é o: https://builtwithdjango.com/projects/ que antes era djangosites.org é muito interessante. Qual fontes vc usa?

Fiz um curso no linkedin sobre django mas achei bem complicado, a versão 5 é quase inteiramente compativel com a 4, mas a maioria dos cursos parece estar na versão 3. O microsoft learn tem cursos grátis muito interessantes tbm versão 4 se não me engano. Aqui na Dio acho q é a versão 3 (python developer). Enfim voltei pro python pra ter mais base e talvez volte a estudar as versões 3, 4 pra entrar na 5 kk. Me conta ai quais são suas principais dificuldades no django? Pra mim acho q é a personalização né? criar páginas, sistemas etc. Vlw! Meu github é: https://github.com/venelouis mas acho q só tem 1 proejto de django do linked in mas da versão 4 q deu ruim o logout na versão 5. por isso é importante usar o venv e utilizar os mesmos requirements né?

Ronaldo Schmidt
Ronaldo Schmidt - 29/01/2024 19:23

Realmente o django é um caso como a maioria dos frameworks que voce mesmo entendendendo sua linguagem base ,no caso o python precisa aprender tudo de novo... é uma batalha todo dia nos deparando com os problemas e pesquisando por soluções. Acredito que é a melhor forma de aprender é enfrentando essas barreiras,uma após a outra e codando muito desde projetos do zero até projetos prontos tentando entender sua estrutura,um tipo de engenharia reversa. Mas projeto pós projeto as coisas começam a se tornar menos complicadas. Sem prolongar muito meu metodo de estudo basicamente é muita pesquisa e aprender com os erros,também tem alguns canais legais no youtube.

Fico grato por ler meu artigo. Acredito que compartilhando nossas experiencias aprendemos mais...

Bons estudos.