PYTHON django: primeiros passos

Tags:
Python Django Logo

Queridinho de muitos, e ainda desconhecido por outros, é fato que o framework Django está se tornando cada vez mais popular, sendo já uma opção de escolha por muitos desenvolvedores python que procuram uma solução poderosa e completa.

Vamos aprender neste post suas principais vantagens e desvantagens, bem como preparar o ambiente de instalação para criação do primeiro projeto.

O que é o Python Django?

Django é um framework web de código aberto, escrito em Python, que segue o padrão de design Model-View-Controller (MVC).

É conhecido por sua simplicidade, escalabilidade e segurança, sendo uma ferramenta popular para o desenvolvimento de aplicações web complexas e robustas.

Foi lançado pela primeira vez em julho de 2005, criado por desenvolvedores do jornal online Lawrence Journal-World. Desde então, ele se tornou uma escolha popular para empresas e startups.

Solução FullStack?

Sim, é possível criar os “dois lados da Força” utilizando Django, isto é, o Frontend e Backend de sua aplicação.

Através do uso de Templates, o desenvolvedor pode criar páginas que serão renderizadas no servidor (SSR – Server Side Rendering), gerenciadas pelas Views.

Contudo, é fundamental ressaltar que dificilmente existem tecnologias ideais para todos os casos e que possuam apenas pontos positivos, é sempre necessário entender os contextos, requisitos e complexidades de cada aplicação.

Desse modo, embora seja uma excelente opção para aqueles que procuram desenvolver em uma única Stack, não é possível comparar em nível de igualdade a capacidade do Django em desenvolver Frontends em relação aos frameworks focados nesta função, tais como Angular, React, Next, VueJS, entre outros, sendo estes últimos mais indicados para situações mais dinâmicas e complexas.

Dessa maneira, em grande parte dos casos onde se objetiva o desenvolvimento de aplicações mais complexas, é possível visualizar o uso do Django apenas como framework Backend, deixando a responsabilidade da codificação Frontend para frameworks/bibliotecas citadas acima.

Criando um projeto com Django

  • Preparação do ambiente:
1. Instalação do Python e Pip:

Faça a instalação do python no site oficial, de acordo com o seu sistema operacional https://www.python.org/downloads/

Instalação Python

Após o download, execute o instalador, lembrando-se de habilitar as opções abaixo, facilitando dessa maneira a configuração para que as variáveis de ambiente sejam automaticamente registradas.

Python instalador

Faça a checagem do status da instalação abrindo o terminal do seu sistema operacional, digitando os comandos abaixo, devendo aparecer a versão do Python que foi instalada:

Windows:

py --version

Linux:

python3 --version

2. Execution Policy – Apenas para sistemas operacionais Windows:

Para sistemas operacionais Windows, é necessário liberar a execução de comandos do gerenciador de pacotes pip.

Dessa maneira, abra o terminal Powershell ou Cmd em modo Administrador:

Powershell

Insira o comando abaixo, selecionando a opção “[A] Sim para Todos”, digitando a letra A + ENTER:

Powershell
  • Criando o projeto:
1. Criando ambiente virtual:

Crie uma pasta vazia no diretório desejado (não recomendamos utilizar diretórios de pen-drives ou pastas compartilhadas em rede), abrindo-a usando a IDE / Editor de Código de sua preferência.

Usaremos para os exemplos a seguir o editor de código Visual Studio Code, embora se assim preferir, pode usar Sublime, PyCharm ou qualquer outro de sua preferência.

Obs.: caso queira instalar o Visual Studio Code, pode utilizar o link: https://code.visualstudio.com/Download

Tela Visual Studio Code

Obs: Para utilizar o python no terminal de comando, existe uma pequena variação caso esteja utilizando Linux ou Windows, portanto, para sistemas Windows: digite py , e para Linux: python3

Para atendimento da maioria dos usuários, utilizaremos o comando em Windows

Digite o comando de criação do que chamamos de virtual environment, ou seja, um ambiente virtual python onde poderá instalar com flexibilidade as bibliotecas necessárias para o uso do seu projeto:

py -m venv venv

Após alguns segundos, você verá que foi criada uma pasta chamada venv.

É nesta pasta será instalada todas as suas bibliotecas e scripts necessários para se rodar uma aplicação python, não sendo aconselhado mudá-la de localização e nem enviá-la para seus repositórios (semelhantemente às pastas node_modules em aplicações node).

Criação de ambiente virtual

Agora que criamos, precisamos ativá-la em nosso terminal para que os comandos pyhon possam ser referenciados à este ambiente virtual:

Windows:

Como dica, use o complemento automático do teclado, digitando: v + (tecla TAB) + s + (tecla TAB) + a + (tecla TAB)

.\venv\Scripts\activate

Linux:

Como dica, use o complemento automático do teclado, digitando: source + v + (tecla TAB) + b + (tecla TAB) + a + (tecla TAB)

source venv/bin/activate
2. Instalando o django:

Faça a instalação django com o pip no terminal ativado com a venv:

pip install django
3. Criando o projeto e o app:

Com o django instalado, execute o comando de criação do projeto, substituindo o nome “project” para o desejado (não é possível usar espaços e nem caracteres especiais):

Obs.: não se esqueça do “espaço” + “ponto” após o comando, para possibilitar com que o projeto seja criado na raiz do seu diretório atual.

django-admin startproject project .

Por natureza, o django é criado como um projeto, onde conterá as configurações gerais do framework, e associado a um ou mais módulos denominados apps.

É nestes apps onde haverá as lógicas e regras de negócio da sua aplicação.

Dessa maneira, quando criamos um projeto, o mesmo ainda não possui nenhum app, então devemos criá-lo com o comando abaixo (substitua “app” com o nome desejado) :

django-admin startapp app
4. Registrando o aplicativo:

Projeto e aplicativo criados, ok, porém o Django não irá utilizar o seu app se você não registrá-lo no projeto.

Portanto, procure dentro da pasta de seu projeto o arquivo settings.py (caso tenha usado o mesmo nome utilizado neste tutorial, estará localizado na pasta “project” )

Estrutura do projeto

Faça o registro do seu aplicativo colocando o nome do mesmo em INSTALLED_APPS presente em seu settings.py (atente-se caso tenha utilizado um nome diferente para o seu projeto, use-o no lugar do ‘app’ do código abaixo):

settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app'
]

  • Primeira Conexão com Banco de Dados (migration):

Uma das principais maravilhas do Django, é já vir por padrão configurado para estabelecer a conexão com o banco de dados SQLite!

Vale ressaltar que a principal ideia dessa autoconfiguração não é impor o uso do SQLite para ambiente de produção, e sim possibilitar com que se obtenha rapidamente um ambiente de testes / desenvolvimento sem a necessidade de preocupações com conexões com banco de dados logo na fase inicial do projeto.

Contudo, caso queira, é facilmente possível alterar a conexão com o banco de dados SQLite para outro banco de dados desejado, sendo apenas necessário a instalação do driver de conexão via pip install (consulte a documentação de cada driver de banco de dados), e alterar a configuração também presente em settings.py (apenas altere caso queira alguma conexão diferente da padrão)

settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}
1. Executando a migração

Assim como muitos frameworks backend, o Django facilita o acesso e integração da linguagem com o banco de dados, através dos chamados ORMs (Object-Relational Mapping), de forma muito análoga ao que ocorre com o Java Hibernate ou Node Sequelize.

Desse modo, para que o ORM do Django verifique o projeto e crie as transações necessárias para atualização do Banco de Dados, é necessário realizar o processo denominado migrations (migrações).

Em outras palavras, toda vez que executar as migrações, o framework irá checar a necessidade de se atualizar a estrutura do banco de dados, exemplo: criação/exclusão de tabelas, inserção de colunas, etc…

Para execução desse processo, basta digitar os comandos abaixo em seu terminal com a venv ativa:

py .\manage.py makemigrations

py .\manage.py migrate

Neste momento, você verá em seu terminal a geração de inúmeras operações de migração, bem como a criação do banco de dados SQLite (caso esteja utilizando-o, é claro)

Migrações do banco de dados

Neste momento, você pode ou não estar se perguntando: por que está sendo criada tantas modificações no banco de dados se meu projeto está praticamente vazio?

E a resposta provavelmente vai te surpreender: o Django já vem com administração e gerenciamento de usuários, grupos, permissões e autenticação!

Portanto, mesmo que você não tenha feito nenhuma modificação no projeto que repercuta na base de dados, ainda assim haverá a migração inicial para criação do referido gerenciamento de usuários!

  • Criando o superusuário:
1. Criando o Django superuser:

Conforme mencionado no tópico anterior, o Django já vem automaticamente preparado para gerenciamento de usuários, grupos, permissões e autenticação.

Vamos criar agora um usuário com privilégio máximo para poder posteriormente usá-lo para se acessar telas e funcionalidades de administração.

Digite o comando abaixo em terminal com a venv ativa:

py .\manage.py createsuperuser

Siga com o preenchimento das informações que serão solicitadas no terminal, pressionando ENTER após cada confirmação.

Para efeito de simplificação, estaremos utilizando estas credenciais: “admin”, email: “admin@admin.com”, senha: “admin”.

Neste caso, como optamos uma senha fraca, devemos confirmar mais uma etapa:

criação do superusuário

  • Acessando o servidor:
1. Start do servidor:

Para inicializar o servidor do Django e assim testarmos seu funcionamento, precisamos digitar o comando abaixo no terminal com a venv ativa:

py .\manage.py runserver

Caso seu projeto esteja sem nenhum erro de sintaxe ou instalação, você poderá enxergar agora o endereço e porta onde seu projeto estará funcionando, que por padrão é o 127.0.0.1 ou localhost, na porta 8000:

servidor em execução

Agora finalmente poderemos acessar com o navegador de sua preferência, o seguinte endereço:

tela inicial do django
2. Acessando tela de Administração:

Para acessar o ambiente administrador do Django, digite o endereço /admin após a url de acesso da página principal, e digite o usuário e senha que criou anteriormente como superusuário:

tela de administração do django

Após o login, você poderá enxergar todas as entidades/tabelas do banco de dados existentes após a migração.

Neste caso, podemos visualizar os usuários e grupos padrões do Django, bem como adicionar, excluir ou fazer alterações diretamente neste ambiente administativo!

entidades do django
  • Próximos Passos:
1. Entendendo a estrutura do projeto:

Para te orientar nos próximos passos a seguir, explicaremos os principais pontos da estrutura do projeto, úteis para que avance em sua jornada com o Django framework.

estrutura do projeto
  • settings.py: contém as configurações gerais do seu projeto que repercutirão em todos os apps/aplicativos;
  • urls.py: contém as definições das urls que serão registradas em seu projeto, sejam elas urls de páginas renderizáveis ou endpoints de uma API;
  • models.py: é neste local onde será possível criar os modelos e entidades que se tornarão tabelas em sua base de dados;
  • views.py: o que você fará aqui dependerá de como está usando o Django, isto é, como uma solução backend ou full stack. Na primeira opção, suas views serão como services de sua API. De outro modo, se optar pela segunda opção, as views conterão as páginas a serem renderizadas;
  • admin.py: aqui é possível registrar as suas models para que possam ser gerenciadas na tela de administração do Django;

Conclusão

Estes foram os primeiros, mas essenciais passos para se iniciar com o Django framework, agora você deverá analisar o contexto de sua aplicação e decidir se irá usá-lo como uma solução Backend ou FullStack, dependendo dos requisitos de sua aplicação.

Independente da decisão, o Django vem tornando-se uma excelente solução adotada por vários desenvolvedores, embora para aplicações mais complexas seja mais recomendada a utilização do mesmo como solução Backend.

Vantagens:

  • Utiliza python, linguagem em ampla ascensão;
  • Providencia por padrão a conexão com banco de dados SQLite para desenvolvimento;
  • Possui ORM integrado para execução das migrações do projeto na base de dados;
  • Disponibliza por padrão uma interface de administração permitindo a visualização da estrutura dos dados, bem como cadastro, exclusão e alteração destes dados diretamente em sua interface;
  • Oferece a possibilidade de gerenciamento de usuários, grupos e permissões já por padrão;
  • Solução completa e flexível tanto no uso como framework backend ou framework full stack;
  • Para aplicações frontend mais simples, dispensa o uso de frameworks adicionais;

Desvantagens:

  • Pode parecer complexo no início;
  • Por vir com várias configurações padrão, pode exigir certo retrabalho na personalização de sua aplicação;
  • Embora seja possível realizar o frontend com Django, não é a melhor opção para construção de aplicações com frontends mais dinâmicos e complexos, sendo neste caso uma melhor solução backend;

Boa sorte em sua jornada com o Django, esperamos que este conteúdo tenha sido útil!

Convidamos para que explore mais opções de conteúdo relacionadas com este ou outros frameworks em nosso site!

Faça o download do projeto em nosso github:

    Deixe um comentário

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