Skip to content

39. Conclusão

Vamos rever o trabalho realizado neste documento:

Capítulo
Repositório de código
Índice
   
 
Visão geral do curso
 
Configurar um ambiente de trabalho
[Noções básicas]
Noções básicas da linguagem Python
– estruturas da linguagem – tipos de dados
– funções – saída da consola –
cadeias de formatação – conversão de tipos
– listas – dicionários – expressões
expressões
[cadeias de caracteres]
Notação de cadeias – métodos da
classe <str> – codificação/decodificação
cadeias de caracteres em UTF-8
[exceções]
Tratamento de exceções
[funções]
Âmbito das variáveis – Parâmetros
Passagem – Utilização de módulos – O
caminho do Python – Parâmetros
– Funções
Funções
[ficheiros]
Ler/escrever um ficheiro de texto –
trabalhar com ficheiros codificados em UTF-8 –
trabalho com ficheiros JSON
[taxes/v01]
Versão 1 da aplicação
Exercício: cálculo do imposto sobre o rendimento
. A aplicação está disponível em 18
versões – A Versão 1 implementa
uma solução procedural
[importações]
Gerir as
importando
módulos – um método de
é apresentado
– é utilizado ao longo de todo o
documento – gestão do
caminho do Python
[impots/v02]
A versão 2 da aplicação
baseia-se na versão 1, reunindo
todas as constantes de configuração num
ficheiro de configuração que também
gerencia o caminho do Python
[impots/v03]
A versão 3 da aplicação
baseia-se na versão 2, utilizando
funções encapsuladas num
módulo — a
é gerida através da
configuração — introdução de um
ficheiro JSON para ler os dados necessários
para o cálculo de impostos e gravar os
resultados do cálculo
[classes/01]
Classes – herança – métodos
e propriedades – getters/setters –
construtor – [__dict__]
propriedade
[classes/02]
Introdução às classes [BaseEntity]
e [MyException] utilizadas
ao longo do resto do
documento – [BaseEntity]
facilita as conversões objeto/dicionário
.
[três camadas]
Arquitetura em camadas e
programação baseada em interfaces.
Este capítulo apresenta os
métodos de programação utilizados
ao longo do resto do
documento
[taxes/v04]
Versão 4 da aplicação – esta
versão implementa uma solução
com uma arquitetura em camadas,
programação baseada em interfaces e
o uso de classes derivadas de
[BaseEntity] e
[MyException]
[bases de dados/mysql]
Instalação do SGBD MySQL –
ligar a uma base de dados –
criar uma tabela – executar
SELECT, UPDATE, DELETE,
e INSERT –
transações – consultas SQL
SQL
[bases de dados/postgresql]
Instalação do SGBD PostgreSQL
– ligar-se a uma base de dados –
criar uma tabela – executar
SELECT, UPDATE, DELETE,
e INSERT –
transações – consultas SQL
SQL
[bases de dados/qualquer SGBD]
Escrever código independente do SGBD
[bases de dados/sqlalchemy]
O ORM (Object-
) – um ORM
permite uma abordagem unificada para
trabalhar com diferentes SGBDs –
mapeamento de classes para tabelas SQL –
operações em classes
que representam tabelas SQL
[taxes/v05]
Versão 5 da aplicação de cálculo de impostos
– Utilizando a arquitetura em camadas
da versão 04 e
o ORM SqlAlchemy para funcionar
com os SGBDs MySQL e PostgreSQL
.
[inet]
Programação Web – Protocolo TCP/IP
(Protocolo de Controlo de Transmissão
/ Protocolo de Internet) –
Protocolos HTTP (Protocolo de
) – SMTP
(Protocolo Simples de Transferência de Correio)
– POP (Protocolo de Correio) –
IMAP (Protocolo de Acesso a Mensagens na Internet
)
[flask]
Serviços Web com o framework Flask
– exibição de uma
página HTML – serviço web JSON
– Pedidos GET e POST –
gerir uma sessão web
[impostos/servidores-http/01]
[impostos/clientes-http/01]
Versão 6 da aplicação
Exercício – Criação de um serviço web JSON
para cálculo de impostos com uma
arquitetura multicamadas – Escrever
um cliente web para este servidor com uma
arquitetura multicamadas –
programação cliente/servidor –
utilizando o módulo [requests]
[taxes/http-servers/02]
[impostos/clientes-http/02]
Versão 7 da aplicação
exercício – A versão 6 foi melhorada:
o cliente e o servidor são
multithreaded – [Logger]
utilitários para registar as trocas cliente/servidor
[SendMail] para enviar
um e-mail ao administrador da aplicação
administrador
[taxes/http-servers/03]
[taxas/clientes-http/03]
Versão 8 da aplicação
exercício – A versão 7 foi melhorada
através da utilização de uma sessão web
[xml]
Gestão de XML (eXtended Markup
) com o
módulo [xmltodict]
[taxes/http-servers/04]
[impostos/clientes-http/04]
Versão 9 do aplicativo
exercício – a versão 8 é modificada
para incluir trocas cliente/servidor
em XML;
[taxes/http-servers/05]
[impostos/clientes-http/05]
Versão 10 da aplicação
exercício – em vez de processar N
contribuintes através de N pedidos GET, é utilizada uma
única solicitação POST é utilizada com
os N contribuintes no corpo da solicitação POST
corpo
[impostos/servidores-http/06]
[impostos/clientes-http/06]
Versão 11 do exercício da aplicação
exercício – a
arquitetura cliente/servidor do aplicativo é
modificada: a camada [de negócios]
passa do servidor para o
cliente
[impostos/servidores-http/07]
Versão 12 do aplicativo
exercício – esta versão implementa
um servidor MVC (Modelo–Visão–
Controller) que fornece
JSON, XML e HTML
de forma intercambiável, dependendo
da solicitação do cliente. Este capítulo
implementa as versões JSON e XML
do servidor
[impots/http-clients/07]
Implementação dos clientes JSON e
XML para o servidor MVC
na Versão 12
[impots/http-servers/07]
Implementação do servidor HTML
na versão 12 – utilizando o
framework CSS Bootstrap –
[impots/http-servers/08]
Versão 13 da aplicação
exercício – Refatoração do código
da versão 12 – gestão de
utilizando o
módulo [flask_session] e um
servidor Redis – utilizando
senhas
[import/http-servers/09]
[importações/clientes-http/09]
Versão 14 da aplicação
exercício – implementação de URLs
com um token CSRF (Cross-Site Request
)
[impots/http-servers/10]
Versão 15 da aplicação
exercício – refatoração do código
da versão 14 para lidar com dois
tipos de ações: ASV (Ação
Mostrar Vista), que são usadas apenas
para exibir uma vista sem
alterar o estado do servidor, e
ADS (Action Do Something),
que executam uma ação que
altera o estado do servidor — todas estas
ações terminam todas com um redirecionamento para
uma ação ASV — isto permite
o tratamento adequado das atualizações de página
no navegador do cliente
[impots/http-servers/11]
Versão 16 da aplicação –
Gestão de URLs com prefixos
[importações/servidores-http/12]
Versão 17 da aplicação –
portando a versão 16 para um
servidor Apache/Windows
[impots/http-servers/13]
Versão 18 da aplicação –
corrige um bug na versão 17

As aplicações de cálculo de impostos cliente/servidor implementaram a seguinte arquitetura:

Image

A camada [web] acima foi implementada utilizando uma arquitetura MVC:

Image

O conteúdo deste documento é denso. Os leitores que chegarem ao fim irão adquirir uma compreensão sólida da programação web MVC em Python/Flask e, além disso, uma compreensão sólida da programação web MVC noutras linguagens.

É possível encontrar informações adicionais sobre o framework Flask no documento [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world], da autoria de Miguel Grinberg. Li algumas secções do seu curso e achei-as muito instrutivas. O autor aborda muitos conceitos que não são tratados neste documento.