O que é Django
Django é um framework web gratuito, de código aberto e baseado em Python. Seu principal objetivo é a construção de sites complexos baseados em banco de dados, de forma rápida e de fácil manutenção. Sua estrutura prioriza a reutilização de componentes, usando menos código e o princípio DRY (não se repita). O Python é usado extensivamente na configuração, no acesso aos bancos de dados e na camada de exibição.
Como framework o Django é completo (diferente do Flask), podendo ser usado sem a adição de pacotes adicionais, embora possa receber plugins para incrementar sua funcionalidade. O Django fornece uma interface de administração (um painel do usuário) opcional gerada dinamicamente por introspecção que possibilita as operações de CRUD no banco de dados e tem suporte para bancos de dados SQLite, PostgresSQL e MySQL (e outros).
Arquitetura MTV
Django segue o padrão da arquitetura MTV, modelo–template–visualização (model–template–views).
- Model: os dados a serem apresentados pelo aplicativo. Geralmente lidos em um banco de dados.
- View: um gerenciador de requisições que seleciona o template apropriado.
- Template: um arquivo básico (com estrutura HTML) contendo o layout da página web com marcadores para preenchimento dos dados requisitados.
Um quadro pode ajudar a esclarecer o modelo.
Descrição do modelo MVT
(Leia esse quadro e retorne a ele mais tarde, depois de ter lidos sobre as várias camadas do django.
- O navegador envia uma requisição para o servidor rodando django (1),
- a URL é recebida por urls.py que atribui uma view para tratamento da requisição,
- a camada view consulta Model (2) para receber os dados requisitados e recebe dela esses dados (3),
- depois de obter os dados View consulta a camada Template (4) para formatar a apresentação final (5) e
- envia páginas html formatadas para o navegador cliente (6).
Sobre aprender Django
Para se obter um entendimento razoável do Django é necessário ter alguns pre-requisitos, que não são cobertos nessas notas. Primeiro é necessário entender como as páginas na web são formadas com html e formatadas com css. Um conhecimento do Python também é essencial, em particular sobre estruturas de dados: uso de listas e tuplas, dicionários e, principalmente, o uso de programação orientada a objetos.
Esses artigos adotam a abordagem de cobrir os aspectos básicos do django para dar uma visão geral do processo de criação e manutenção de sites e aplicativos web. Após uma leitura desse texto e a experimentação com o código proposto a consulta à documentação oficial do django deverá ser compreensível para o leitor.
Instalações
Para usar essas instruções o ideal seria ter uma instalação das últimas versões do Python e do Django. Usaremos o banco de dados SQlite que não necessita nenunha instalação especial. Também poderiam ser usados o MySQL, o PostgreeSQL ou vários outros bancos de dados.
Embora não obrigatório é sempre bom trabalhar em uma área isolada usando um ambiente virtual. Instruções sobre ambientes virtuais podem ser lidas aqui: Ambientes Virtuais, pip e conda. Para isso crie um diretório destinado a conter o projeto do django, e um ambiente virtual:
$ mkdir ~/Projetos/django $ cd ~/Projetos/django $ python3.10 -m venv env # para usar o ambiente virtual $ source env/bin/activate # o prompt de comando muda para (env) $ # para desativar o ambiente virtual (quando for o caso) (env)$ deactivate
As linhas de código acima criam o diretório ~/Projetos/django (lembrando que no linux ~ representa a pasta do usuário). No Windows os comandos devem ser alterados de acordo com a sintaxe do sistema. Criando um ambiente virtual alguns diretórios específicos (bin, include, lib) são gravados com uma cópia da instalação do Python, e algumas variáveis de ambiente são redefinidas. Pacotes instalados com o pip (ou outro gerenciador) serão colocados nesse ambiente.
Estando dentro do ambiente virtual, instalamos a última versão do django (que era a 4.0.5 em junho de 2022) usamos:
(env) $ pip install Django==4.0.5 # para verificar a instalação (env) $ python -m django --version 4.0.5
Prosseguiremos com a construção de um projeto em django no artigo 2- Django, um Projeto.
Artigos Django
1. Django, Websites com Python (esse artigo): Introdução, instalação.
2. Um Projeto no Django: Criação e gerenciamento de projetos, criação de apps, templates, herança de templates, arquivos Estáticos e CSS, Modelos de dados, admin, exibição de dados.
3. Incrementando o Projeto Django: chaves externas e datas, Resetando o banco de dados, personalizando o Admin, formulários.
Bibliografia
Livros:
- Ashley, David: Foundation Dynamic Web Pages with Python, Apress, 2020.
- Bendoraitis, Aidas; Kronika, Jake: Django 3 Web Development Cookbook, 4th. Ed., Packt, Mumbai, 2020.
- Feldroy, D.; Feldroy, A.: Two Scoops of Django 3.x, 5ª Ed., Two Scoops Press, 2021.
- Shaw, B., Badhwar, S., Bird, A, Chandra, Guest C.: Web Development with Django, Packt, 2011.
- Vincent, William S.: Django for Professionals, Production websites with Python & Django, disponível para aquisição em Leanpub.com, 2020.
Sites:
- Django Project: Django, web framework for perfectionists with deadlines,
- MDN Web Docs: Django Web Framework (Python),
- Real Python: Django Tutorials,
- W3 Schools: Django Tutorial,
todos eles acessados em junho de 2022.