Pixelmancer
Django banner, white text in green background

Written by - Hugo Billé Martins

O que é Django?

Se você caiu aqui de paraquedas, aqui vem um resuminho bem básico do que é o Django. O Django é uma framework para a web que utiliza inteiramente a linguagem Python. Com o Django você pode construir páginas web inteiras com o auxílio de §Templates, APIs em modelo REST com o §Django REST framework (sim, uma framework dentro da framework) ou simplesmente desenvolver a comunicação com o banco de dados (e cria-lo por completo sem nunca escrever sequer uma linha de sql) com o §Django ORM. Enfim, é uma framework bem completa que pode ser utilizada de várias formas diferentes e em diversas situações, é muito provavelmente a framework mais versátil atualmente e por isso é tão fundamental dominar Django e Python.

Pré-requisitos

O mais importante de tudo é o Python. Dependendo da sua plataforma o processo de instalação pode variar mas o importante é instalar a versão mais atual do Python para garantir as os recursos mais atualizados.

Junto ao Python vem o PIP, mas muito provavelmente se você já tem o Python, você também tem o gerenciador de pacotes mais utilizado da linguagem.

E por último, o MySQL (ou MariaDB se você é mais de código aberto mesmo). De longe, o mais fácil de instalar é o MariaDB

Windows

No Windows você tem algumas opções:


Python

  1. §Anaconda, uma organização super legal que administra e torna o processo de instalar diferentes versões do Python no Windows uma tarefa bem fácil. O software deles também inclui algumas outras soluções para utilização do Python como um servidor local para executar o Jupyter Notebooks, alguns pacotes pré instalados
  2. Instalar do site oficial do §Python
  3. Instalar pela própria Microsoft Store

MySQL

  1. §MySQL Workbench, além de instalar MySQL Server, o próprio Workbench tem algumas funcionalidades muito boas (minha favorita é diagramação automática).
  2. Instalar na mão só o MySQL Server
  3. Sempre tem o MariaDB como alternativa

Linux

acaba sendo risório o quão fácil é o processo de instalação do linux se comparado ao Windows. Tudo o que acabei de falar pode ser resumido aos três seguintes comandos:

sudo apt install python3


sudo apt install mariadb-server


sudo apt install python3-pip

Finalmente, Django

Se você deseja iniciar um projeto do zero, recomendo seguir e tutorial do próprio tutorial da §documentação do Django; aqui tem a explicação detalhada, passo a passo, de como cada parte do projeto do django funciona e como cria-las pelo terminal.

Essa postagem em especial é direcionada a instalação de projetos em Django já criados, mas que precisam ser instalados em um servidor de produção ou na máquina do seu companheiro de equipe.

Fork do repositório

Sempre que você vai trabalhar em um repositório que não é seu (e você não é um colaborador), é necessário criar um fork, ou seja, uma cópia do repositório que será "seu". Criar um fork de um repositório é bem simples, você apenas precisa entrar na página do github do repositório e clicar em "Fork". §imagem foda §imagem foda

Clonando seu fork

Agora que você tem um fork do repositório, você precisa baixar ele na sua máquina. Para isso, usamos o comando git clone [endereço https do repositório]. Para pegar esse endereço, você deverá clicar no botão "code" na página do seu repositório e copiar o endereço https. Lembre-se de clonar o repositório na pasta correta, eu pessoalmente gosto de colocar tudo relacionado à programação na pasta ~/dev (o sinalzinho de ~ significa "home do seu usuário", é o mesmo que digitar "/usuarios/[user]/home").

Instalando as dependências

Os projetos escritos em python geralmente possuem um arquivo chamado requirements.txt, que guarda todos os pacotes que são utilizados no projeto. Se esse arquivo existir, você pode executar o comando pip install -r requirements.txt e todas as dependências do projeto serão instaladas. Se o arquivo não existir... ai realmente vai ser complicado instalar o que o projeto precisa. Sem o requirements.txt, você terá que instalar os pacotes que aparecerem como erro ao iniciar o projeto, então... recomenda-se fortemente que sempre crie o requirements.txt dos seus projetos em python.

envvars.yaml

Um requisito essêncial de segurança para qualquer projeto são as variáveis de ambiente. Variáveis de ambiente incluem: senhas do banco de dados, usuário, nome do banco, endereço do banco, secret key, entre outra variáveis. São todos dados sensíveis que devem ser preservador a todo custo e são dependentes do ambiente que estão: desenvolvimento ou produção. Tem várias formas de guardar variáveis de ambiente: .env, .txt, .json, .toml, entre outros formatos. Pessoalmente, prefiro utilizar o formato .yaml, e será esse que ensinarei como integrar com o django Primeiramente, crie no root do seu projeto o arquivo ".envvars.yaml" (preste atenção no ponto antes do nome, isso significa que ele é um arquivo oculto). O template de dados que utilizo nos meus arquivos .yaml pode ser encontrado logo abaixo, fique a vontade de copiar e alterá-lo da forma que desejar.

Lembrando que todos os passos relacionados a varáveis de ambiente são relacionados ao arquivo settings.py, que vamos entrar em detalhes mais tarde. Mas se você chegou a esse blog por indicação minha provavelmente você estará usando um projeto django com o settings.py configurado para receber o .envvars.yaml.

.envvars.yaml
Copy

_10
_10
db_name: "hospital" # Este projeto foi pensando para suportar MySql ou MariaDB
_10
db_user: "root" # Usuário do banco com todas as permissões para a base de dados
_10
db_host: "localhost" # Onde o banco de dados está localizado
_10
db_pw: "123456" # A senha do respectivo usuário do banco
_10
django_secret_key: secretkey123456 # Insira sua django secret key
_10
debug_mode: True # Use True para DEBUG or False para PRODUCTION
_10
email_sistema: seu@email.com # E-mail utilizado para recuperação de senha
_10
email_pw: su@senha123 # Senha do email acima

Como ler um arquivo .yaml

Para ler esse arquivo .yaml podemos usar um programinha em python mesmo, sinta-se a vontade de copia-lo

envvars.py
Copy

_15
_15
import yaml
_15
_15
try:
_15
from yaml import CLoader as Loader, CDumper as Dumper
_15
except ImportError:
_15
from yaml import Loader, Dumper
_15
_15
def load_envvars(BASE_DIR):
_15
try:
_15
yaml_file=open("./.envvars.yaml", "r")
_15
except:
_15
yaml_file=open(str(BASE_DIR.parent) + "/.envvars.yaml", "r")
_15
_15
return yaml.load(yaml_file, Loader=Loader)

O load_envvars() retornara um objeto com todas as propriedades escritas no root do seu projeto.

Finalmente podemos começar

Com tudo isso em mãos, podemos criar o banco e inicar o projeto.

Primeiramente, temos que criar o database e colocar o nome desse detabase no .envvars. Vamos supor que o nome do banco que você quer criar é hospital... você simplesmente executa create database hospital e coloca hospital no seu db_name.

Agora, com o banco criado, vamos executar 2 comandos do django. Para executar todos os comandos dessa framework devemos executar python manage.py [comando]. O arquivo manage.py pode ser encontrado no root do projeto e é ele que serve como intermediário para todos os comandos.

O primeiro comando é o python manage.py makemigrations, que vai preparar os comandos sql para serem executados no banco. O segundo comando, python manage.py migrate, serve justamente para executar esses comandos.

Se nenhum erro estorou na sua cara... parabéns!!! Você acabou de instalar seu primeiro projeto em Django! Se algo deu errado, tente sempre buscar os erros no Google ou no StackOverflow, a comunidade de Django e Python é imensa, muito provavelmente o erro que você está tendo já pode ter afeto outros mais programadores.

Iniciando o servidor

Agora é a parte mais tranquila: inicar o servidor de desenvolvimento.

O comando é bem simples, apenas: python manage.py runserver.

O servidor será iniciado por padrão na porta 8000, então é só acessar localhost:8000 e começar a programar!