Já faz MUITO tempo, que tenho vontade de compartilhar experiências e aprendizados através conteúdo escrito. Este é o meu primeiro post e espero que goste!
Trarei uma série de postagens educacionais onde explorarei funcionalidades do Django. Se tiverem sugestões e/ou dúvidas, estou 100% à disposição para conversarmos.
O que é o Django?
Sem entrar em muitos detalhes e irmos direto a prática, a autodefinição traduzida pela própria documentação diz o seguinte:
Django é um framework web em Python de alto nível que incentiva o desenvolvimento rápido e um design limpo e pragmático. Desenvolvido por programadores experientes, ele lida com grande parte das complexidades do desenvolvimento web, permitindo que você se concentre na escrita de sua aplicação sem precisar reinventar a roda. É gratuito e de código aberto.
E, para tentar te convencer sobre sua importância, você pode checar a listagem de frameworks web Python mais utilizados em 2022.
Quais os objetivos deste post?
- Mostrar como podemos iniciar um projeto com o framework.
- Compreender a estrutura inicial de um projeto Django.
Introdução
Vamos começar com um projeto que pretende ser um sistema de agendamentos, algo similar à uma agenda, mas que posteriormente adicionaremos controle de pagamentos e outras funcionalidades.
Entretanto, para alinhamento de expectativas, no final desta postagem ainda não teremos feito nada do que foi proposto, apenas preparado o projeto para o desenvolvimento.
Antes de mais nada, crie a pasta onde vai colocar o projeto e já inicie o ambiente virtual (venv). A partir de agora sempre assumirei que o ambiente virtual iniciado está ativo, ok?
Faça a instalação do Django através do comando pip install django
.
Ao finalizar você terá acesso ao comando django-admin
que possibilita fazer um série de subcomandos, veja abaixo:
O comando que utilizaremos, inicialmente, aqui é o: startproject
.
Passaremos dois argumentos adicionais: o primeiro será o nome da pasta que guardará os arquivos de configuração do projeto e o segundo será o local onde queremos criar essa pasta, usaremos um .
para indicar que será no diretório atual.
O comando completo fica assim:
django-admin startproject config .
Escolhi o nome config
dado que será a pasta que guardará as configurações gerais do meu projeto, e, se você me acompanhou até aqui, terá uma organização parecida com a que é mostrada abaixo:
Nosso projeto já é executável, faça python3 manage.py runserver
no terminal e acesse 127.0.0.1:8000, veja o que te aguarda abaixo:
Entendendo os urls.py
e settings.py
O arquivo urls.py
representa a configuração de rotas do seu projeto Django, dentro da variável urlpatterns
guardamos os caminhos e como lidaremos com aquele caminho (view
). Podemos colocar uma classe, uma função, ou até mesmo inserir um outro arquivo de configuração de rotas.
Por enquanto, não vamos inserir nada nesse arquivo, mas observe que na linha 21 já há uma rota implementada.
Se tentarmos acessar a rota 127.0.0.1:8000/admin, caímos então no que chamamos de painel de administração do Django.
Na próximo post desta série falaremos mais sobre o painel de administração, antes, vamos entender o settings.py
. Nesse arquivo encontramos diversas configurações do projeto, citarei algumas delas aqui:
-
SECRET_KEY
: Variável que é usada para criptografia que já existe no projeto. -
DEBUG
: Variável que indica se o projeto está em desenvolvimento ou produção. -
ALLOWED_HOSTS
: Variável que contém domínios permitidos (uma segurança contra ataques CSRF. -
INSTALLED_APPS
: Variável que contém osapps
instalados em seu projeto. -
MIDDLEWARE
: Variável que contém osmiddlewares
instalados em seu projeto. -
ROOT_URLCONF
: Variável que contém o arquivo de configuração de rotas do projeto. -
TEMPLATES
: Variável que contém a configuração de uso de templates do projeto. -
DATABASES
: Variável que contém a configuração de uso de banco de dados do projeto. -
LANGUAGE_CODE
: Idioma do projeto. -
TIMEZONE
: Fuso horário a ser considerado pelo projeto.
Tenho certeza que algumas das configurações que citei ainda não estão completamente nítidas para você, mas não se preocupe. Trarei mais detalhes à medida que precisarmos.
Enquanto isso, veja como é interessante, mude o valor de LANGUAGE_CODE
para pt-br
e de TIMEZONE
para America/Sao_Paulo
. Salve o código. Veja como no terminal agora temos um horário diferente do que era mostrado antes (Agora seguindo o fuso horário de Brasília) e ao acessar o painel de administração de novo, veja que está em português. 🤯
O banco de dados do Django
A configuração padrão para banco de dados do Django usa o SQLite, um banco de dados relacional em arquivo. Se essa configuração for mantida, ao executar o projeto, surgirá o arquivo db.sqlite3
.
Com o auxílio de uma extensão do VSCode podemos inspecionar as tabelas do banco, que, no nosso caso, ainda não existem.
Você pode ter notado no terminal que uma mensagem em vermelho acompanha o terminal desde que subimos o projeto pela primeira vez.
Essa mensagem mostra que o Django tem alterações à serem feitas no banco de dados e que ainda não foram aplicadas. Para fazer isso, execute o comando python3 manage.py migrate
.
Agora, se inspecionamos o arquivo do banco novamente:
Todas essas tabelas que estão dentro do banco são usadas pelo próprio Django para lidar com o sistema de usuários, grupos, permissões, sessões e até mesmo as próprias migrações que são aplicadas no banco.
Podemos inserir um novo registro no banco de dados criando um superuser
através do comando python3 manage.py createsuperuser
e interagindo no próprio terminal com os dados que são pedidos.
Ao inspecionar a tabela auth_user
no banco de dados temos agora um registro. (Caso não tenha aparecido para você, basta clicar no símbolo de atualizar logo acima das tabelas)
Com esse acesso criado, você pode agora fazer login no painel de administração do Django!
Agora, basta clicar em Grupos
ou Usuários
para conseguir visualizar, filtrar, pesquisar, adicionar, atualizar ou deletar registros referentes à cada uma desses modelos.
No próximo post, faremos a configuração do primeiro app
que implementaremos. Nele, teremos um modelo e com ele você entenderá como melhorar a usabilidade do painel de administração para suas próprias implementações.
Top comments (0)