Boas-vindas a mais um curso de Django. Meu nome é Bruno Divino, serei seu guia de aprendizagem ao decorrer deste curso.
Autodescrição: Tenho pele clara e olhos verdes, estou usando óculos. Uso bigode e estou vestindo uma camiseta azul escura com o logotipo da Alura. Atrás de mim, há uma parede branca com iluminação azul.
Este curso é voltado para pessoas que querem aprender Python para desenvolvimento back-end, mais precisamente, usando o framework do Django.
Para acompanhar o curso, é interessante ter conhecimentos de orientação a objetos em Python. Esse paradigma da linguagem será utilizado, por exemplo, com a funcionalidade de criação de formulários, em que instanciamos classes e objetos.
Também é interessante que ter familiaridade com os conceitos abordados no curso de Django: persistência de dados e admin, que precede este curso. Nele, começamos o projeto Alura Space, ao qual daremos continuidade nesse curso.
Anteriormente, trabalhamos na página inicial do Alura Space. Agora, vamos focar nas funcionalidades de login e de cadastro de novas pessoas com o banco de dados interno do Django, utilizando o users do Django admin. Nosso objetivo é realizar o cadastro a partir de formulários personalizados na própria interface da aplicação.
Além disso, adaptaremos nosso projeto para que apenas pessoas cadastradas possam visualizar a galeria da página inicial. Ou seja, vamos aplicar a regra de negócio no nosso site.
Então, vamos estudar?
Vamos avançar no projeto da Alura Space que começamos a desenvolver no último curso!
Primeiramente, é necessário baixar o projeto em nossa máquina, então temos duas alternativas:
git clone
.No caso, meu projeto está em "Área de Trabalho > projetos > alura_space". Você pode escolher o diretório de sua preferência.
Em seguida, vamos iniciar o VS Code e arrastar a pasta do projeto para ele. Desse modo, o editor de códigos abrirá o projeto e podemos checar a estrutura de pastas no painel "Explorador", à esquerda.
Antes de alterar qualquer código, é imprescindível criar um ambiente virtual para nosso projeto Python.
De início, criaremos um terminal, pressionando "Ctrl + Shift + '".
Nós vamos utilizar o ambiente virtual do virtualenv, portanto usaremos o comando python -m virtualenv
seguido do nome desejado. Por padrão, usamos .venv
:
python -m virtualenv .venv
Uma vez criada a virtualenv, é preciso ativá-la com o seguinte comando:
.venv\Scripts\activate
Agora, nosso ambiente está ativado!
A seguir, vamos verificar se o interpretador selecionado no VS Code é o que está dentro do nosso ambiente virtual — ou seja, o Python que instalamos na virtualenv.
No VS Code, vamos pressionar "Ctrl + Shift + P", pesquisar a palavra "interpretador" e escolher a opção "Python: Selecionar Interpretador". Em seguida, clicaremos em "Insira o caminho do interpretador" e, depois, em "Localizar...".
Uma janela de seleção de arquivos será aberta. Vamos navegar até "alura_space > .venv > Scripts", selecionar o arquivo python.exe
e clicar no botão "Selecionar Interpretador" no canto inferior direito da janela.
Pronto! O interpretador correto foi selecionado.
Essa etapa é muito importante para confirmar que estamos trabalhando com o Python presente na virtualenv. Do contrário, podemos nos deparar com erros no futuro.
Por fim, faremos a instalação dos recursos listados no arquivo requirements.txt
. Eles são essenciais para o funcionamento do projeto, o próprio Django consta nessa lista!
No terminal, vamos executar o seguinte comando:
pip install -r requirements.txt
Todos os pacotes serão coletados e, uma vez finalizado esse processo, estaremos prontos para rodar nosso projeto.
No terminal, vamos executar o seguinte comando:
python manage.py runserver
O projeto rodará sem problemas e teremos o seguinte resultado no terminal:
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
[DATA ATUAL]
Django version 4.1, using settings 'setup.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
Vamos dar "Ctrl + Clique" sobre o endereço informado no terminal para acessar o projeto Alura Space no navegador.
Interface da página inicial: O plano de fundo é azul escuro. No topo à esquerda, há o logotipo do Alura Space — um planeta com anel em diagonal e uma pequena estrela, seguido das palavra "Alura Space" em letras arredondadas. No topo à direita, há um campo de pesquisa. Na lateral esquerda da página, temos o menu de navegação com as opções "Home", "Mais vistas", "Novas" e "Supreenda-me". No corpo da página, no topo, há um banner com uma imagem do espaço e o texto "A galeria mais completa de fotos do espaço!". Abaixo dela, está escrito "Busque por tags", seguido das tags "Nebulosa", "Estrela", "Galáxia" e "Planeta" em retângulos separados. Abaixo, temos a seção "Navegue pela galeria", seguida de cards dispostos em duas colunas com imagens com temática espacial. Cada imagem tem uma tag no canto direito superior e informações escritas na parte inferior.
No próximo vídeo, começaremos a avançar no desenvolvimento do nosso projeto.
O Alura Space é uma galeria de imagens com temática espacial, um ambiente colaborativo para que várias pessoas possam adicionar fotografias de corpos celestiais.
Atualmente, apenas quem tem acesso ao admin consegue inserir novas imagens, ou seja, pessoas desenvolvedoras e administradoras desse sistema. Precisamos adicionar uma nova funcionalidade para realizar o cadastro e o login de novas pessoas usuárias, para que elas possam inserir imagens também. Portanto, vamos criar outra app no Django.
Vamos abrir o VS Code. No painel à esquerda, na estrutura de arquivos do projeto, já temos uma app chamada "galeria". A seguir, vamos criar uma app chamada "usuarios".
Não podemos utilizar o prompt de comando atual, porque ele está sendo usado para manter o servidor no ar, então vamos criar outro. Basta clicar no símbolo de "+" no canto superior direito do terminal ou pressionar "Ctrl + Shift + '".
Para consultar a lista de comandos disponíveis no Django, podemos executar a seguinte linha:
python manage.py help
Vamos usar o comando startapp
, seguido do nome da nova app:
python manage.py startapp usuarios
Agora, na estrutura de arquivos, além da aplicação "galeria", também temos a aplicação "usuarios".
Nosso próximo passo é adicionar a nova aplicação ao projeto. Vamos expandir a pasta "setup" (onde se encontra nosso projeto Python) e abrir o arquivo settings.py
.
Na pasta "usuarios", há um arquivo chamado apps.py
, em que constam as configurações dessa nova aplicação. Logo, é deste arquivo que faremos a importação da referência em settings.py
para indicar a nova aplicação.
Em settings.py
, vamos adicionar a referência usuarios.apps.UsuariosConfig
dentro de INSTALLED_APPS
:
# código anterior omitido
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'galeria.apps.GaleriaConfig',
'usuarios.apps.UsuariosConfig',
]
# código posterior omitido
É uma boa prática fazer a importação, em vez de simplesmente colocar "usuarios", porque em apps.py
temos todas as configurações da aplicação. Assim, futuramente podemos mudar as configurações sem causar conflitos no projeto.
Portanto, fizemos a importação e nosso projeto Django já reconhece a nova aplicação.
A seguir, vamos aplicar algumas boas práticas na aplicação "usuarios". Trata-se de boas práticas que aplicamos em "galeria" anteriormente.
Idealmente, em cada uma de nossas aplicações, teremos um arquivo chamado urls.py
. Já criamos esse arquivo na aplicação "galeria", então vamos repetir o processo em "usuarios".
Na pasta "usuarios", vamos criar um arquivo chamado urls.py
. Vamos copiar o conteúdo de "galeria > urls.py
" e colá-lo em "usuarios > urls.py
" para ter uma base:
# usuarios > urls.py
from django.urls import path
from galeria.views import index, imagem, buscar
urlpatterns = [
path('', index, name='index'),
path('imagem/<int:foto_id>', imagem, name='imagem'),
path('buscar', buscar, name='buscar'),
]
Vamos remover os paths, já que ainda não temos nenhum. Mais adiante, pensaremos em que tipos de paths colocaremos nessa aplicação. Também removeremos a importação da segunda linha. Por enquanto, o arquivo "usuarios > urls.py
" ficará da seguinte forma:
from django.urls import path
urlpatterns = [
]
Em seguida, vamos abrir o arquivo "setup > urls.py
", pois precisamos indicar que temos um novo direcionamento. Vamos incluir o path para urls.py
da aplicação "usuarios":
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('galeria.urls')),
path('', include('usuarios.urls')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Sendo assim, geramos a aplicação "usuarios" e criamos seu respectivo arquivo urls.py
, adotando boas práticas de desenvolvimento.
Para finalizar, vamos entender por que optamos por criar uma aplicação "usuarios", em vez de gerar uma nova página.
A divisão em apps fica a critério da pessoa desenvolvedora. Como implementaremos muitas funcionalidades acerca de usuários (como cadastro, login e autenticação), julgamos ser coerente ter duas aplicações distintas. A aplicação "galeria" para focar na inserção de novas fotografias e a aplicação "usuarios" para cuidar de processos relativos às pessoas usuárias.
Na aplicação "usuarios", há um arquivo chamado views.py
, no qual constarão todas as views para as páginas da nossa app. A partir do próximo vídeo, começaremos a desenvolver esse arquivo, gerando views que farão referência a cadastro, login e quaisquer outros recursos necessários para manejar relativos a usuários.
O curso Django: autenticação de formulários e alerta possui 156 minutos de vídeos, em um total de 44 atividades. Gostou? Conheça nossos outros cursos de Python em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.