Ambiente de desenvolvimento com Python e Django

Projeto de software

Setup inicial

A organização inicial de um projeto de software, seja qual for a linguagem ou framework, é uma etapa de extrema importância, costumo dizer que um bom setup inicial é metade do caminho andado. Neste artigo vou te mostrar como eu organizo o meu Ambiente de desenvolvimento com Python e Django. Já disse, cola que é sucesso! XD

Virtualenv

A linguagem Python oferece um recurso simplesmente sensacional, o virtualenv, ou virtual enviroment ou ambiente virtual, chame como preferir, são as mesmas coisas. Mas o que muita gente não sabe é a real importância desse recurso e porque você deve utilizar sem moderação.

Eu imagino o virtualenv do Python como uma caixinha. Para cada projeto de software que você estiver trabalhando, você terá uma caixinha dessa. Nela você irá guardar tudo que for pertinente à aquele projeto, todas as libs, frameworks, assets ou que for, deverão ficar somente dentro dela, na versão que você precisar.

Assim sendo, começamos a perceber a liberdade que temos por exemplo, ao decidir usar versões diferentes de uma mesma lib em projetos diferentes. Por exemplo: imagine que você tem um projeto Django em produção, na versão 1.11 e nesse momento, começou um novo projeto com a versão 3.0.

Da versão 1.11 do Django até a versão 3.0, certamente muitas coisas foram alteradas, removidas, trocadas de lugar enfim, software é um organismo vivo, vai se alterando, se adaptando com o passar do tempo. Se você estiver usando uma instalação global do Django, ou seja, diretamente no Sistema Operacional, você certamente precisou desinstalar a versão 1.11 e instalar a versão 3.0, certo?

Continuando com a nossa linha de raciocínio, imagina que você precisa atualizar algo no software que está em produção, o que você precisa fazer? Bingo! Desinstalar a versão 3.0 e instalar a 1.11. Sacou a parada? Quando terminar a bendita atualização, o que você precisa fazer novamente? Exatamente! Repetir o mesmo procedimento para poder voltar a trabalhar no seu projeto novo.

É exatamente neste ponto que o virtualenv do Python se encaixa, com ele você não precisa sofrer dessa forma, com um simples comando você desativa o ambiente virtual do projeto novo e ativa o do projeto antigo. Daí é só resolver a tua bronca lá e voltar para o outro projeto, simples assim.

Criando nosso ambiente virtual

A partir da versão 3.3 do Python, esse recurso veio como parte da biblioteca padrão da linguagem, antes disso, se usava libs desenvolvidas pela comunidade. Todas são excelentes! Pelo menos as que eu conheço. São elas: virtualenv, virtualenvwrapper e Pipenv. Mas para este tutorial, usaremos a nativa.

Comenta aí se você quer que eu escreva um tutorial para cada uma dessas libs. 😉

python3 -m venv nome_ambiente_virtual

Pronto, digitado esse comando você já terá seu ambiente virtual criado e pronto para o uso. Claro que em nome_ambiente_virtual você deve trocar para o nome do seu ambiente, eu costumo usar o mesmo nome do projeto com a letra v logo no início. Veja o exemplo abaixo.

python3 -m venv vdjangoproject

E agora?

Bom, eu disse que após o comando anterior, o ambiente estaria pronto para trabalhar, certo? E sim, está. Porém, é preciso sempre ativar o ambiente antes de iniciar de fato suas atividades, assim o Python saberá onde você estará trabalhando quando digitar um comando qualquer e então fará a busca pelo o que você deseja, somente dentro desse ambiente.

Após o comando anterior, será criado no disco do seu computador, no local onde você se encontra, uma pasta com o mesmo nome do ambiente virtual, no nosso exemplo vdjangoproject. Se for curioso o suficiente você irá entrar nesse diretório e navegar na sua estrutura, perceberá também uma pasta chamada bin. Dentro dessa pasta temos um script com o nome de activate, é esse mocinho que nos dará os devidos poderes!

source vdjangoproject/bin/activate

Você notará que o nome do seu ambiente virtual irá está entre parênteses precedendo o prompt do seu terminal, este é o indicador de que o ambiente está ativo e que a partir desse momento, tudo que for digitado, seja um comando de criação ou instalação, será buscado única e exclusivamente dentro desse ambiente, dentro dessa caixinha. Massa né?

Vamos continuar.

Para desativar, ou seja, desligar o seu ambiente, basta digitar o comando deactivate, isso irá devolver a sua instalação global do Python.

Instalação do Django e outras libs

Com o ambiente ativado, o próximo passo é instalar as libs que você precisa, nesse caso, a primeira que vamos instalar é o Django, siga o comando abaixo.

pip install django

Isso irá instalar o Django na sua última versão no seu ambiente. Qualquer outra lib que desejar, fará o mesmo processo, basta utilizar o pip install e digitar logo em seguida o nome da lib desejada. Por exemplo.

pip install requests

Estrutura do projeto Django

Vamos agora criar um projeto Django e vê como eu organizo a estrutura dos meus projetos, veremos que em poucos passos criaremos uma estrutura organizada e de fácil compreensão.

Primeiro criamos o projeto com o comando:

django-admin startproject nome_projeto_django

De novo, lembre de trocar o nome_projeto_django pelo o nome do seu projeto, como no exemplo abaixo.

django-admin startproject djangoproject

Veja que no meu exemplo eu usei o nome djangoproject, mas este nome é você quem define, observe também que é o mesmo nome do ambiente virtual, sendo que o nome do ambiente tem a v antes de tudo. No entanto, isso é por pura conveniência e decisão própria, você pode e deve criar o seu padrão de nomenclaturas também. Lembre-se sempre de criar nomes que façam sentido para você e se tiver em uma equipe, pense também nos outros. XD

O comando acima por padrão cria um diretório com o nome que foi informado e dentro desse diretório é criado um subdiretório de mesmo nome, junto desse subdiretório temos também o arquivo manage.py, um script Python que vai nos auxiliar daqui pra frente. Todos os comandos Django serão pré-seguidos desse script.

Agora sim, vamos começar a definir a estrutura de um projeto Django, trabalhamos até agora na criação e configuração do Ambiente de desenvolvimento com Python e Django como um todo.

Para seguirmos em frente, no primeiro nível, ou seja, dentro do primeiro diretório do seu projeto, crie um diretório chamado apps. Você pode usar o terminal para isso ou mesmo a interface gráfica do seu SO.

Eventualmente você deve conhecer a filosofia do framework Django, ele tem projeto que tem aplicações, portanto, é nas aplicações que ficam toda lógica ou regra de negócio do seu software. É dentro desse diretório que acabamos de criar que ficarão as aplicações do projeto.

Eu costumo adicionar mais dois diretórios nesse mesmo nível, são eles: templates e staticfiles, dentro de templates ficarão todos os .html da aplicação, a nossa camada de visão, as telas por assim dizer. Em staticfiles criarei ainda mais três diretórios, img, css e js. Os nomes são autoexplicativos né???!!! 😎

Aplicações Django

Vamos agora criar uma aplicação e concluir a configuração do nosso ambiente de desenvolvimento.

Então entre no diretório apps e execute o comando abaixo:

../manage.py startapp accounts

ou

python ../manage.py startapp accounts

Você só precisará usar a palavra python antes de o seu script manage.py não tiver permissão de execução, isso se você estiver em um ambiente Linux ou Mac. Se estiver no Windows, tem que usar.

Configurações finais

Usando o seu editor de código ou IDE preferida, abra o arquivo settings.py, é dentro desse cara que fica todas as configurações de um projeto Django. Sempre que desejar alterar ou adicionar alguma configuração nova, é nele que você deverá fazer isso.

Informando ao Python e Django a casa das aplicações

Basicamente, com a configuração acima estamos informando ao Python e ao Django o diretório que será a casinha de nossas aplicações Django, em outras palavras é isso.

Como criamos ainda dois diretórios extras, precisamos também informar ao Django onde procurar por esse tipo de arquivo, veja a configuração abaixo.

Configurações para o diretório templates e staticfiles

Resumo da ópera

Existem várias outras configurações que eu costumo fazer no início de um projeto, porém, o intuito desse tutorial foi mostrar a Estrutura básica de um projeto Django.

Se você deseja aprender mais sobre Python e Django e se tornar um especialista nessa stack, sugiro fortemente conhecer a proposta do Curso Django Pro, matricule-se, assista algumas aulas e veja se o curso agrega valor na sua vida profissional, você tem 7 dias de garantia incondicional, se não gostar, é só pedir seu dinheiro de volta! Simples assim. 😎

Chegamos ao fim, se ficou até aqui, meu muito obrigado, muito obrigado mesmo pela companhia! Navegue mais pelo site, tem outros posts interessantes. Deixe aí seu comentário, qual dúvida você tem sobre essa etapa inicial e qual organização você usa atualmente? Fico no aguardo.

Um forte abraço e fui! Nos vemos no próximo post!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *