Vamos aprender a colocar uma aplicação feita com Django em uma hospedagem real e vamos escolher a Amazon Web Services (AWS).
Caso você não tenha uma aplicação feita em Django, da uma olhada nessa serie de post onde montamos uma aplicação CRUD em Django, segue o link:
Vamos usar o PostgreSQL, ele é um banco de dados relacional de código aberto.
Adicionaremos o PostgreSQL ao nosso projeto Django.
Abra o projeto no VS Code e depois abra o terminal com o comando control + j.
Entre na pasta do projeto e agora vamos instalar o pacote necessário.
Vamos instalar o pacote psycpg2 com o seguinte comando:
pip install psycopg2-binary
Caso você não tenha ainda, crie sua conta na AWS:
E faça o login:
Agora vamos procrurar o serviço de RDS, na página do console, digite no campode busca RDS, se preferir antes de clicar no RDS clique na estrela ao lado para adicionar aos favoritos.
Clique em Databases no menu lateral esquerdo e depois clique em Create database.
Configurações do seu novo banco de dados.
Escolha Standard create.
Em seguida em Engine options escolha PostgreSQL.
Em templates clique em Free Tier.
Coloque um nome para sua base de dados, usuário do banco e senha.
obs.: Lembre sempre de colocar uma senha forte e que não seja de facil adivinhação.
Instance configuration, matenha o padrão:
Em Storage desabilite somente o Storage autoscaling.
Em Connectivity, altere o Public Access para Yes, para permitir acesso público.
Ainda em connectitity, em VPC security group, clique em Create new, coloque um nome, eu coloquei hello-django-SG.
Em Database authentication, mantenha o padrão, Password autentication.
Em Monitoring, mantenha os 7 dias free tier.
Clique em create database.
Ele vai iniciar a criação da instância, espera até que ela seja criada.
Enquanto isso vamos nosso arquivo settings.py procure pela parte que contem a configuração do banco de dados.
Vamos alterar para apontar para o nosso banco de dados na AWS, mas primeiro precisamos pegar essas informações na AWS.
Clique no nome da nosso banco.
Conseguimos agora localizar o endpoint (link) do banco e a porta.
Pegue essas informações e altere as configurações do banco no seu projeto, note que o Engine o final mudou de sqlite3 para postgresql.
Se tudo ocorreu conforme o esperado, vamos executar o comando python manage.py migrate.
Quando você for na rota de usuários você vai perceber que não temos mais usuários nenhum sendo exibido, isso por que criamos um banco novo.
Pare o projeto e vamos criar um superuser para o projeto novamente, pois estamos em um banco novo.
python manage.py createsuperuser
Rode o projeto e veja se consegue entrar na área administrativa.
Vá na página de cadastro e crie um novo usuário pela aplicação.
Visualize o novo usuário pelo admin do Django.
Você notou que o processo de cadastrar um novo usuário e listar esta com um delay, isso por que ele esta salvando na AWS e não localmente aonde é praticamente instantâneo.
Por hora ficamos por aqui, na próxima vamos colocar a nossa aplicação na AWS juntamente com nosso banco de dados.